运算符的重载
一直以来对这个很迷糊。
class Count
{
Count();
~Count();
int GetItsVal const { return itsVal; }
void SetItsVal (int x) { itsVal = x; }
void Increment () {++itsVal ; }
void operate ++ () { ++itsVal ; }
private:
int itsVal;
}
带返回值的运算符重载
class Count
{
Count();
~Count();
int GetItsVal const { return itsVal; }
void SetItsVal (int x) { itsVal = x; }
void Increment () {++itsVal ; }
Count operate ++ () ;
private:
int itsVal;
}
Count : : Count operate ++ ()
{
++itsVal;
Count temp;
temp.SetItsVal(itsVal);
return temp;
}
如何Count有一个使用值的构造函数,那么你只需要把构造的结果当作自加运算符的返回值返回即可。
class Count
{
Count();
Count(int val);
~Count();
int GetItsVal const { return itsVal; }
void SetItsVal (int x) { itsVal = x; }
void Increment () {++itsVal ; }
Count operate ++ () ;
private:
int itsVal;
}
Count : : Count( int val):
itsVal ( Val )
{}
Count : : Count operate ++ ()
{
++itsVal;
return Count(itsVal);
}