2014-11-07 1 views
0

Я пытаюсь реализовать граф/лабиринт объектов Node, чтобы найти самый короткий путь в лабиринте. Пока все работает, за исключением двух частей, оба из которых связаны с указателями. Мне показалось, что я понял указатели, но C++ все еще довольно новичок, поэтому я мог бы сделать что-то действительно немое, и любая помощь была бы весьма признательна.Как вернуть переменную члена частного указателя

мой класс Node выглядит следующим образом:

class Node { 
public: 
    ... 
    Node *getAttachedNode(int index); 
    Node *getPrevious(); 
    ... 
private: 
    ... 
    Node *attachedNodes[4]; 
    Node *previous; 
    ... 
}; 

Теперь есть другие вещи в классе тоже, но это все работает, как я тоже ожидал. И мне дали все в этом классе в инструкциях для этого проекта. Тогда я выполнил эти две функции таким образом:

Node* Node::getAttachedNode(int index) { //EDIT: fixed the syntax 
    return *attachedNodes[index]; 
} 

Node* Node::getPrevious() { //EDIT: fixed the syntax 
    return *previous; 
} 

EDIT: После исправления мой синтаксис для вызовов функций, она фиксированной оригинальные ошибки, но теперь заменили их обоих «не может преобразовать„Узел“к«Node *»в ответ»

ответ

1
Node Node::*getAttachedNode(int index) {  //wrong syntax for returning pointers 

должны быть изменения в

Node* Node::getAttachedNode(int index) {  //correct syntax 

Также изменить

return *attachedNodes[index]; 

в

return attachedNodes[index]; 

если вы хотите вернуть указатель.

+0

Я исправил это для обеих функций, и теперь я просто получаю сообщение об ошибке: «Невозможно преобразовать« Узел »в« Узел »в обратном порядке» для обеих функций. – VarnerBeast14

+0

Это исправляло эти ошибки, но затем приводило к целому списку несвязанных ошибок, которые должны были быть скрыты из-за этих и других небольших ошибок, которые у меня были вначале. Спасибо за помощь. – VarnerBeast14

Смежные вопросы