前置++:即为++放在变量的左边,如++i;
后置++:即为++放在变量的右边,如i++;
- 首先回顾c++中++i与i++的区别:
++i表示先将i自增1,再返回i的引用,(是左值),
i++表示先返回i的值,再自增1,(右值)。
例如:
int i=0; (++i)=10; \\是允许的。
int i=0; (i++)=10; \\编译器会报错。
- 在类中重载前置++时,无参数,返回值类型为引用,
重载后置++时,需要一个int类型的参数(必须为int类型,这一参数仅为了与前置++区分开,不会用于计算),返回值非引用。
class Object{
...
public:
...
Object & operator ++ (){ //重载前置++
*this = *this + 1; //自增1
return *this;
}
Object operator ++ (int){ //重载后置++
Object temp=*this;
++*this; //利用了重载的前置++
return temp;
}
};