首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

运算符重载失误了,请大家帮忙

2012-07-28 
运算符重载出错了,请大家帮忙。这是一个比较简单的类,重载“+”出错,请大家指点下。代码如下:C/C++ codeclass

运算符重载出错了,请大家帮忙。
这是一个比较简单的类,重载“+”出错,请大家指点下。代码如下:

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;    } 

热点排行