gpt4 book ai didi

C++ 从类成员函数返回值

转载 作者:行者123 更新时间:2023-11-30 01:13:25 25 4
gpt4 key购买 nike

我不明白为什么 a.funct() 可以是赋值运算符的左操作数,即使 funct() 没有返回左值引用也是如此。

class A
{
public:
A funct () {A x; return x;}
};

int main ()
{
A a,b; a.funct()=b;
}

最佳答案

在类的自动生成方法中,有

A& operator = (const A&);

这使得 a.funct() = b 合法。

要禁止对右值的影响,您可以从 C++11 开始编写并实现

A& operator = (const A&) &; // Note the last &

所以赋值只适用于左值。

关于C++ 从类成员函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32252817/

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