读书人

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

发布时间: 2012-07-28 12:25:13 作者: rapoo

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

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

读书人网 >C++

热点推荐