常见的前置和后置形式有++,在重载前置和后置的++时,为了区分后置的++调用的operator++(0),而前置的则没有0: operator++()。
前置后置重载函数的返回对象应该为const,因为要防止i++++;这样的语句出现,相当于调用了i.operator().operator(),第二个opertator所改变的对象是第一个operator返回的对象,而不是原对象。
也就是说int i = 0; i++++; 后i还是1。
相较于前置式和后置式的重载函数,后置式相对而言效率会更低,因为后置式需要产生一个对象来存储原对象的值,然后再返回原对象的值,这样一来就发生了构造、析构和赋值函数。
总结:所以非必要的情况下尽量用前置式来处理数据。