前置后置单目运算符重载函数返回值用法

Clock& Clock::operator ++() //前置单目运算符重载函数
{
Second++;
if(Second>=60)
{
Second=Second-60;
Minute++;
if(Minute>=60)
{
Minute=Minute-60;
Hour++;
Hour=Hour%24;
}
}
return *this;
}
//后置单目运算符重载
Clock Clock::operator ++(int) //注意形参表中的整型参数
{
Clock old=*this;
++(*this);
return old;
}

关于前置后置单目运算符重载函数返回值用法,为了与内置类型一致,前缀式操作符应返回被增量或减量对象的引用,为了与内置操作符一致,后缀式操作符应返回旧值(即,尚未自增或自减的值),并且,应作为值返回,而不是返回引用。所以,前置需要&作为返回引用。

 

原文地址:https://www.cnblogs.com/zhanjxcom/p/4418201.html