前置操作符,++x,--x, 返回的是引用
后置操作符,x--,x++, 返回的是const的值。
C++是靠依据输入参数的类型(型别)的不同来区别不同的重载函数,
因此前置的重载函数没有入参,而后置参数有入参,该参数不参与函数内的逻辑运算,仅仅作为区别不同的重载函数而已。
UPInt &UPInt::operator++()
{
*this += 1;
return *this;
}
const UPInt UPInt::operator++(int)
{
UPInt tmp=*this;
++(*this);
return tmp;
}
因为后置 参数的返回的类型是const, 因此 x++++是错误的。 编译的时候也会报错。 但是++++x,即连续的两次前置调用是容许的,因为前置返回的是非const的引用。