lvalue需要作为一元'&' C ++中的操作数错误

时间:2014-01-03 15:21:47

标签: c++

我试图通过引用将值传递给另一个指针,但是我收到错误:lvalue需要作为一元'&'操作数。

以下是我的尝试:

Node<Item,Key> *root;

Node<Item, Key> *x= root;

x= &x->getLeft(); // it does not let me use &

以下是getLeft()的getter:

template<typename Item, typename Key>
Node<Item, Key>* Node<Item, Key>::getLeft() {

    return left;
}

如果有人能说出我的错误,我感激不尽。 提前谢谢。

2 个答案:

答案 0 :(得分:4)

你的意思是:

x = x->getLeft();

getLeft()的返回值已经是指针。

答案 1 :(得分:0)

x->getLeft()返回Node<Item, Key>* - 它已经是指针。如果你拿到它的地址,你会得到一个Node<Item, Key>**,这不是你可以分配给x的东西。

但你似乎遇到了另一个问题。您的root指针未初始化。然后,您将其复制到x并尝试通过间接访问(->)成员。在你这样做之前,你需要让rootx指向某事。