전치 연산자를 다음과 같이 함수를 선언함으로써 중첩시킬 수 있습니다.

반환형 operator op (매개변수)

여기서 op는 중첩시킬 연산자 입니다. 따라서 ++ 연산자를 다음과 같은 모양으로
void operator++ ()

// 전치연산자(PreFix Operator)를 중첩(Overloading) 시키기.
#include <iostream>
using namespace std;

typedef unsigned short USHORT;
class Counter
{
public:
 Counter();
 ~Counter() {}
 USHORT GetItsVal() const { return itsVal; }
 void SetItsVal(USHORT x) { itsVal = x; }
 void Increment() { ++itsVal; }
 void operator++ () { ++itsVal; } // 재정의하고 싶은 연산자

private:
 USHORT itsVal;
};

// 디폴트 생성자 초기값 0
Counter::Counter():itsVal(0) {};
 
int main()
{
 Counter i;
 cout << "The value of i is " << i.GetItsVal() << endl;
 i.Increment();
 cout << "The value of i is " << i.GetItsVal() << endl;
 ++i;
 cout << "The value of i is " << i.GetItsVal() << endl;

 return 0;

}

함따라 봤는데 진짜 신기한군요.

+ Recent posts