Я чувствую, что этот вопрос может быть немного тривиальным, но я просто не могу обернуть вокруг него голову. В настоящее время у меня есть класс Node, который пытается указать, какой узел происходит перед текущим узлом, используя указатель prevNode. Однако я не могу получить доступ к каким-либо переменным в prevNode.Указание на объект того же типа
При запуске Main.cpp из следующего кода он печатает результат '15340756'. Где я иду не так? Похоже, что я все еще немного новичок в C++.
node.h
#include "stdafx.h"
class Node
{
public:
Node();
void setPrevNode(Node n);
Node getPrevNode();
int i;
private:
Node *prevNode;
};
node.cpp
#include "stdafx.h"
#include "Node.h"
Node::Node(){
i = 0;
}
void Node::setPrevNode(Node n){
prevNode = &n;
}
Node Node::getPrevNode(){
return *prevNode;
}
main.cpp
#include "stdafx.h"
#include "Node.h"
int _tmain(int argc, _TCHAR* argv[])
{
Node nodes[] = {Node(), Node()};
nodes[0].i = 1;
nodes[1].setPrevNode(nodes[0]);
printf("%i", nodes[1].getPrevNode().i);
while(true){
}
return 0;
}
Я бы также добавить соответствующий 'getPrevNode', который возвращает указатель на' Node' показать следствие к ' setPrevNode', используя указатель. Этот ответ показывает хорошую работу, показывающую различия между передачей по значению, ссылке и указателю. – Kaiged