递增++和递减-C ++中的运算符重载

增量(++)和减量(-)运算符面积为2,是C ++中可用的一元运算符。下面的示例说明如何为前缀以及后缀用法重载增量(++)运算符。同样,您可以重载运算符(-)。

示例

#include <iostream>
using namespace std;

class Time {
   private:
   int hours;
   int minutes;

   public:
   Time(int h, int m) {
      hours = h;
      minutes = m;
   }

   void display() {
      cout << "H: " << hours << " M:" << minutes <<endl;
   }

   //重载前缀++运算符
   Time operator++ () {
      ++minutes;          //增加当前对象
   if(minutes >= 60) {
      ++hours;
      minutes -= 60;
   }
   return Time(hours, minutes);
}

//重载postfix ++运算符
Time operator++( int ) {
   Time T(hours, minutes);

   //增加当前对象
   ++minutes;                    

   if(minutes >= 60) {
      ++hours;
      minutes -= 60;
   }        

   //返回旧的原始值
   return T;
   }
};
                   
int main() {
   Time T1(11, 59), T2(10,40);

   ++T1;
   T1.display();
   ++T1;
   T1.display();

   T2++;
   T2.display();
   T2++;
   T2.display();
   return 0;
}

输出结果

这给出了结果-

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