[英]lvalue required as unary '&' operand error in C++
我試圖通過引用將值傳遞給另一個指針,但是我遇到了錯誤:lvalue需要作為一元'&'操作數。
以下是我的嘗試:
Node<Item,Key> *root;
Node<Item, Key> *x= root;
x= &x->getLeft(); // it does not let me use &
以下是我對getLeft()的獲取:
template<typename Item, typename Key>
Node<Item, Key>* Node<Item, Key>::getLeft() {
return left;
}
我很高興有人能認出我的錯誤。 提前致謝。
你的意思是:
x = x->getLeft();
getLeft()
的返回值已經是一個指針。
x->getLeft()
返回Node<Item, Key>*
-它已經是一個指針。 如果使用它的地址,則會得到Node<Item, Key>**
,這不是您可以分配給x
東西。
但是,您似乎遇到了另一個問題。 您的root
指針未初始化。 然后,將其復制到x
並嘗試通過間接( ->
)訪問成員。 在執行此操作之前,您需要使root
和x
指向某物。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.