从效率上讲,前置的效率一般要高于后置。后置一般在设计上是通过前置实现的。

例如:

class A{
public:
int i;
explicit A(int i):i(i){}
A(
const A& a){
this->i=a.i;
}
A
& operator ++(){
i
++;
return *this;
}
const A operator ++(int){
A old(
*this);
++(*this);
return old;
}
};
int main(){
A a(
1);
++a=a++;
cout
<<a.i<<endl;
}

 

从返回值上来讲,前置++,要求返回对象的引用,后置++,返回一个常量对象。

这种设计能防止出现i++++这种垃圾语法~


posted on 2008-11-29 15:29  CUCmehp(likesmiles)  阅读(251)  评论(0编辑  收藏  举报