Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

증가 ++ 및 감소 -- 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;
   }

   // overload prefix ++ operator
   Time operator++ () {
      ++minutes;          // increment current object
   if(minutes >= 60) {
      ++hours;
      minutes -= 60;
   }
   return Time(hours, minutes);
}

// overload postfix ++ operator
Time operator++( int ) {
   Time T(hours, minutes);

   // increment current object
   ++minutes;                    

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

   // return old original value
   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