我试图通过引用将值传递给另一个指针,但是我收到错误: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;
}
如果有人能说出我的错误,我感激不尽。 提前谢谢。
答案 0 :(得分:4)
你的意思是:
x = x->getLeft();
getLeft()
的返回值已经是指针。
答案 1 :(得分:0)
x->getLeft()
返回Node<Item, Key>*
- 它已经是指针。如果你拿到它的地址,你会得到一个Node<Item, Key>**
,这不是你可以分配给x
的东西。
但你似乎遇到了另一个问题。您的root
指针未初始化。然后,您将其复制到x
并尝试通过间接访问(->
)成员。在你这样做之前,你需要让root
和x
指向某事。