在C++中函数重载对前置和后置++,用一个int的哑元常量值区别
class_type &operator++(class_type & a)
//前置版本
{
a = a+1;
return a;
}
class_type operator++(class_type & a, int)
// 后置版本
{
class_type tmp = a;
a = a + 1;
return a;
}
当++,--,应用与基本数据类型时,效率没有什么差别,但是当用于大的类时,前置版本的效率要,高于后置版本,后置版本要创建一个临时对象,调用拷贝函数,在退出函数时还要销毁它。所以尽量要用前置版本。