gpt4 book ai didi

C++ 错误 : lvalue required as unary '&' operand

转载 作者:搜寻专家 更新时间:2023-10-31 01:40:07 27 4
gpt4 key购买 nike

我创建了一个名为节点的类。定义如下:

class node
{
private:
int key;
node * next;

public:
void setkey(int key);
void setnext(node * next);
int getkey();
node * getnext();
};

这些函数是基本的getter 和setter 函数。现在,如果我尝试这样做:

MoveNode(&(bTail->getnext()),&start);

它显示错误为 :lvalue required as unary '&' operand

现在,如果我更新类 Node 并将 (node * next) 保持为公共(public)并通过此访问:

MoveNode(&(bTail->next),&start);

没有显示错误。

请帮助我如何摆脱错误。

最佳答案

当你从 getnext() 返回 node* 时,你创建了一个 node* 类型的临时变量,所以它没有意义使用&获取它的地址,这个临时变量很快就会被销毁。

当你直接访问next时,你引用了一个长期存在的变量,你可以获取它的地址。

您可能希望从 getnext() 返回一个 referencenode*:

node*& getnext() {return next;};

这样它将指向同一个变量 next 并且您将能够获取它的地址。

关于C++ 错误 : lvalue required as unary '&' operand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187682/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com