运算符重载出错了,请大家帮忙。
这是一个比较简单的类,重载“+”出错,请大家指点下。代码如下:
- C/C++ code
class accumulator;accumulator operator+(const accumulator& obj, int value);class accumulator{public: accumulator(int value = 0) : total(value) { } int getTotal( ) { return total; } void addValue(int value) { total += value; } friend accumulator operator+(const accumulator& obj, int value);private: int total;};accumulator operator+(const accumulator& obj, int value){ return accumulator(obj.getTotal() + value);}错误信息如下:
1>y:\practise\c++\test\test\main.cpp(32): error C2662: 'accumulator::getTotal' : cannot convert 'this' pointer from 'const accumulator' to 'accumulator &'
1> Conversion loses qualifiers
错误提示不能转换。为什么会有这个转换呢?谢谢!!
[解决办法]
const对象只能对调用const成员函数
- C/C++ code
int getTotal( ) const//加一个const { return total; }