运算符的重载

 

  一直以来对这个很迷糊。

 

 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);

 }