簡體   English   中英

左值要求是C ++中的一元'&'操作數錯誤

[英]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並嘗試通過間接( -> )訪問成員。 在執行此操作之前,您需要使rootx指向某物。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM