1、前自增和前自减运算符被看做单目运算符,后自增和后自减运算符被看做为双目运算符。
2、前自增和前自减运算符返回值是引用,所以返回值要返回&类型,这个是前置++(++a)一定要维持的属性。后置++(a++)返回的是一个临时变量,不能返回&类型。
3、前自增运算符重载、前自减运算符重载形式
重载为成员函数:
class X
{
X& operator++();
X& operator--();
X operator++(int);
X operator--(int);
};
X& X::operator++()//千万别忘了X::
{
++sec_;
sec_%=86400;//0.0.1
return *this;
}
X& X::operator--()//千万别忘了X::
{
--sec_;
sec_%=86400;//0.0.1
return *this;
}
X X::operator++(int)//后自增;
{
X old(*this);//记录修改前的对象;
++sec_;
sec_%=86400;
return old;//返回修改前的对象;
}
X X::operator--(int)//后自减;
{
X old(*this);//记录修改前的对象;
--sec_;
sec_%=86400;
return old;//返回修改前的对象;
}
//后面的可以不看;
重载为全局函数:
class X
{
X& operator++(T2);