C++编程规范之28:优先使用++和—的标准形式。优先调用前缀形式

来源:互联网 发布:178炉石传说数据库 编辑:程序博客网 时间:2024/05/15 15:06

摘要:

    如果定义++c,也要定义c++:递增和递减操作符很麻烦,因为它们都有前缀和后缀形式,而两种形式语义又略有不同。定义operator ++和operator –时,应该模仿它们对应的内置操作符,如果不需要原值,应该优先调用前缀版本

    对于++和—而言,后缀形式返回的是原值,而前缀形式返回的是操作后的新值。应该用前缀形式实现后缀形式,标准形式是:

//前缀形式++T&T::operator++(){         //执行递增         return *this;}//前缀形式--T&T::operator--(){         //执行递减         return *this;}


 

//后缀形式++TT::operator(int){         T old(*this);         ++*this;         return old;}//后缀形式--TT::operator(int){         T old(*this);         --*this;         return old;}

 

    因此,在调用代码时,要优先使用前缀形式,除非确实需要后缀形式返回的原值。前缀形式在语义上与后缀形式是等价的,输入工作量也相当,只是效率会略高一些,因为前缀形式少创建了一个对象。这不是不成熟的优化,这是在避免不成熟的劣化。

1 0
原创粉丝点击