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

关于前置式累加算子与后置式累加算子的一致性有关问题

2012-02-27 
关于前置式累加算子与后置式累加算子的一致性问题翻看Exceptional C++的时候碰到这样一句话程式准则: 为了

关于前置式累加算子与后置式累加算子的一致性问题
翻看Exceptional C++的时候碰到这样一句话
程式准则: 为了一致性,请总以前置式累加算子为本,实作出后置式累加算子。否则你的使用者会很惊讶其结果,并往往不高兴。
我想知道这个会很惊讶其结果的结果有什么问题么?以下边的代码为例:

C/C++ code
class Complex{    public:        Complex& operator ++()        {            ++Real;            return *this;        }        Complex operator++(int) const        {            Complex com( *this );            ++*this;            return com;        }    private:        long double Real, Imag;};

如果将后置式累加算子写成这样:
C/C++ code
        Complex operator++(int) const        {            Complex com( *this );            ++Real;            return com;        }

会有什么令使用者惊讶的结果么?


[解决办法]
C/C++ code
Complex operator++(int) const//顺便问一下这个const有啥效果
[解决办法]
类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。
[解决办法]
楼主显然是不动手编译代码的。
这样看不懂《Exceptional C++》也就很正常的了。

热点排行