Проблемы с передачей указателя по ссылке в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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