전치 연산자를 다음과 같이 함수를 선언함으로써 중첩시킬 수 있습니다.
반환형 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;
}
함따라 봤는데 진짜 신기한군요.
'객체지향언어 > C++' 카테고리의 다른 글
#1. 소켓통신 클라이언트 소스 (0) | 2009.12.16 |
---|---|
C++ 포인터 (0) | 2009.08.24 |
C++과 상관이 있을지 모르겠지만... 에러리스트 목록 입니다. 참고하세요. (0) | 2009.08.05 |