gpt4 book ai didi

c++ - 为什么这会导致 C2102 : '&' requires l-value

转载 作者:可可西里 更新时间:2023-11-01 18:18:05 27 4
gpt4 key购买 nike

我在想,为什么下面这样的代码(已经注释掉了)会导致
C2102:“&”需要左值

是否有更好的方法来避免使用 tmp 变量?

class a {
private:
int *dummy;
public:
int* get_dummy() const {
return dummy;
}
};

int main()
{
a aa;

// error C2102: '&' requires l-value
//int** me = &(aa.get_dummy());

// OK!
int *tmp = aa.get_dummy();
int** me = &(tmp);
}

最佳答案

因为 a::get_dummy() 返回一个未命名的临时对象(int 指针)。
函数返回的对象位于堆栈帧的顶部,获取其地址毫无意义,因为它可能在表达式结束后无效。

关于c++ - 为什么这会导致 C2102 : '&' requires l-value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3674456/

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