关于前置式累加算子与后置式累加算子的一致性问题
翻看Exceptional C++的时候碰到这样一句话
程式准则: 为了一致性,请总以前置式累加算子为本,实作出后置式累加算子。否则你的使用者会很惊讶其结果,并往往不高兴。
我想知道这个会很惊讶其结果的结果有什么问题么?以下边的代码为例:
class Complex{ public: Complex& operator ++() { ++Real; return *this; } Complex operator++(int) const { Complex com( *this ); ++*this; return com; } private: long double Real, Imag;};
Complex operator++(int) const { Complex com( *this ); ++Real; return com; }
Complex operator++(int) const//顺便问一下这个const有啥效果
[解决办法]
类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。
[解决办法]
楼主显然是不动手编译代码的。
这样看不懂《Exceptional C++》也就很正常的了。