C++递增++和递减–重载

广告位

递增(++)和递减(–)运算符在C++语言中是两个重要的一元运算符。 下面的例子说明如何递增(++…

递增(++)和递减(–)运算符在C++语言中是两个重要的一元运算符。

下面的例子说明如何递增(++)运算符可以重载前缀和后缀的用法。类似的方法,你可以重载运算符(–)。

  #include <iostream>  using namespace std;     class Time  {     private:        int hours;             // 0 to 23        int minutes;           // 0 to 59     public:        // required constructors        Time(){           hours = 0;           minutes = 0;        }        Time(int h, int m){           hours = h;           minutes = m;        }        // method to display time        void displayTime()        {           cout << "H: " << hours << " M:" << minutes <<endl;        }        // overloaded prefix ++ operator        Time operator++ ()          {           ++minutes;          // increment this object           if(minutes >= 60)             {              ++hours;              minutes -= 60;           }           return Time(hours, minutes);        }        // overloaded postfix ++ operator        Time operator++( int )                 {           // save the orignal value           Time T(hours, minutes);           // increment this object           ++minutes;                               if(minutes >= 60)           {              ++hours;              minutes -= 60;           }           // return old original value           return T;         }  };  int main()  {     Time T1(11, 59), T2(10,40);        ++T1;                    // increment T1     T1.displayTime();        // display T1     ++T1;                    // increment T1 again     T1.displayTime();        // display T1        T2++;                    // increment T2     T2.displayTime();        // display T2     T2++;                    // increment T2 again     T2.displayTime();        // display T2     return 0;  }

当上述代码被编译和执行时,它产生了以下结果:

  H: 12 M:0  H: 12 M:1  H: 10 M:41  H: 10 M:42

贺, 贺朝

关于作者: 贺朝

为您推荐