ITEM M6 自增(INCREMENT)、自减(DECREMENT)操作符前缀形式与后缀形式的区别

前缀自增

UPInt & UPint::operator++()

{

  *this+=1;

  return *this;

}

后缀自增

const UPInt & UPint::operator++(int )

{

  UPint oldValue=*this;

  ++(*this);

  return oldValue;

}

note 1:所以++++i是可以的,i++++是不可以的

note 2:性能上面由于i++后缀自增中有个临时变量,必须被析构,所以为了代码的效率最好用前缀自增

note 3:

  int i=1;

  if(i--){do something}能够进入循环,因为返回的是旧的i;

  if(--i){do something} 不能进入循环,因为返回的是新的i;

原文地址:https://www.cnblogs.com/wuxiangli/p/5577764.html