.h文件中的函数原型为:
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有点困惑,我根本无法使事情变得正确。有人知道如何在这里解决错误吗?
谢谢!
答案 0 :(得分:1)
问题是您要从成员函数返回引用,而该成员函数已明确声明为 const 。
const成员函数保证不会修改您的对象及其属性(除非将其声明为mutable)。
通过返回对此(* this)的引用,函数的调用者可以自由更改对象,这将破坏const成员函数的保修。
因此,要么使您的成员函数成为非常量,要么不返回引用。