Проблемы с передачей указателя по ссылке в CppC++

Программы на C++. Форум разработчиков
Anonymous
Проблемы с передачей указателя по ссылке в Cpp

Сообщение Anonymous »

Код: Выделить всё

    void insertNodeInternal(int v, Node* &selectedNode){
if (selectedNode == nullptr) {
selectedNode = new Node(v);
}
else if (v GetValue())
insertNodeInternal(v, selectedNode->GetLeftNode());
else
insertNodeInternal(v, selectedNode->GetRightNode());
}
Показанная выше функция должна добавить узел в двоичное дерево. Ошибка: начальное значение ссылки на неконстантное значение должно быть lvalue, когда я пытаюсь вызвать InsertNodeInternal(v, selectedNode->GetLeftNode()). Та же ошибка с правым узлом.

Код: Выделить всё

Node *GetLeftNode (){return this -> left;}
Это метод получения для класса Node

Код: Выделить всё

Node* left=nullptr;
Это объявление left в классе Node
Та же ошибка с selectNode->GetRightNode()
Обратите внимание, что в моей IDE красным подчеркнута только часть selectNode.
Большое спасибо
Это должна быть рекурсивная функция, используемая в другой функции:

Код: Выделить всё

    void insertNode (int v){
this->insertNodeInternal(v, GetRoot());
}
GetRoot() также подчеркивается
Я рассматривал возможность передачи аргумента как указатель на указатель, но, увы, я бы предпочел, чтобы он передавался как ссылка.

Подробнее здесь: https://stackoverflow.com/questions/784 ... nce-in-cpp

Вернуться в «C++»