前置
自定义一个Int类
class Int
{
public:
Int()
{
m_Num = 0;
}
private:
int m_Num;
};
Int& operator--()
{
m_num--;
return *this;
}
前置++运算不需要传入参数,返回到自身,引用是为了始终对一个对象进行操作
后置
Integer operator--(int)
{
Integer temp = *this;
m_num--;
return temp;
}
用占位参数区分前置和后置,先将数据记录并返回再进行运算,因为返回的是局部对象(当前函数执行完毕被释放),所以不能返回引用。
这也导致了(p++)++在运算时相当于(p++)=p,从而出现(p++)++=p++,无论多少次后置递增(递减)都只相当于运算一次。