gpt4 book ai didi

c++ - 为什么在返回引用时不能使用 const?

转载 作者:行者123 更新时间:2023-12-05 09:06:06 25 4
gpt4 key购买 nike

为了完整起见,我还想为我提供一个简单的一元 + 运算符。我认为一元运算符应该是不可变的。如果我让 operator-() 返回否定对象的拷贝,则语句 -obj=other; (obj otherComplex 类型的对象)将无法编译。但是,如果我让 operator+() 返回对象本身,另一个语句 +obj=other; 将编译。

问题是我无法在以下代码段中使用 const。错误是什么意思?

Complex& operator+() const
{
return *this;
}

enter image description here

完整代码

class Complex
{
private:
double re;
double im;

public:

// others are intentionally removed for the sake of simplicity
Complex operator-() const
{
return Complex{-re,-im};
}
Complex& operator+() const
{
return *this;
}
}

最佳答案

您的运算符被标记为 const 因此 *thisComplex const &。您的返回类型去除了 const

关于c++ - 为什么在返回引用时不能使用 const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66407424/

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