我在 .h 文件中的函数原型(prototype)为:
myClass & operator+ (const myClass & myClassInst) const;
以及 .cpp 文件中的实现:
myClass& myClass::operator+ (const myClass &myClassInst) const
{
return *this;
}
但是,当我编译时,我收到以下消息:
error C2440: 'return' : cannot convert from 'const class myClass' to 'class
myClass &'
我对这里的 *this 有点困惑,我根本无法纠正。有人知道如何解决这里的错误吗?
提前致谢!
最佳答案
问题是您要从显式声明为 const 的成员函数返回对对象的引用。
const 成员函数保证您的对象及其属性不会被修改(除非它们被声明为 mutable )。
通过返回对 this (*this) 的引用,函数的调用者可以自由更改对象,这会破坏 const 成员函数保证。
因此,要么使您的成员函数成为非 const,要么不返回引用。
关于c++ - '返回' : cannot convert from 'const class myClass' to 'class myClass &' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51005612/