more effective C++条款六解析

来源:互联网 发布:秒赞网哪一个源码好 编辑:程序博客网 时间:2024/05/23 12:37

区分前置increment与后置increment

区分前置与后置++,首先明确他们的操作符重载带来的写法上的不同:

class UPInt{public:UPint& operator++() {*this+=1;return *this}const UPInt operator++(int) { UPInt oldValue=*this;++(*this);return oldValue;}}
值得注意的就是两个地方,一就是操作符重载的形式后置的++会在后面添加int,虽然没有被使用。

第二个值得注意的是operator++(int)返回的是一个const 因为类似UPInt++++的行为是不被允许的(内置类型int 也不允许++++,另外这样就算可以也会造成不明确,只会加一次,所以说返回const UPInt)。

从代码中我们可以发现,后置的效率显示式没有前置的高的,所以在程序行为一致的情况下,建议使用的是前置的++。

原创粉丝点击