단항 연산자의 오버로딩
Programming/C++ 2012. 8. 27. 02:07 |피연산자가 두 개인 이항 연산자와 피연산자가 한 개인 단항 연산자의 가장 큰 차이점은 피연산자의 개수이다.
그리고 이에 따른 연산자 오버로딩의 차이점은 매개변수의 개수에서 발견된다.
증가, 감소 연산자의 오버로딩
# this는 객체자신의 포인터 값을 의미하므로, *this는 객체 자신을 의미한다.
# ++(++pos); 는 소괄호 부분이 먼저 다음의 형태로 해석된다.
=> ++(pos.operator++()); 그 다음에 반환이 참조 값이므로 다음의 형태가 된다.
=> (pos의 참조 값).operator++();
# 그런데 pos의 참조 값을 대상으로 하는 연산은 pos 객체를 대상으로 하는 연산이기 때문에 결과적으로 위의 문장이 실행되면서 pos 객체의 멤버변수 값은 다시 1씩 증가한다.
# 정리하면, 위 예제의 operator++ 함수에서 객체 자신을 참조할 수 있는 참조 값을 반환하는 이유는 일반적인 ++ 연산자와 같은 형태의 연산이 가능하게 하기 위함이다.
'Programming > C++' 카테고리의 다른 글
교환법칙 문제의 해결 (0) | 2012.08.28 |
---|---|
전위증가와 후위증가의 구분 (0) | 2012.08.27 |
연산자 오버로딩 (Operator Overloading) (0) | 2012.08.25 |
가상 상속 (Virtual Inheritance) (0) | 2012.08.22 |
다중 상속(Multiple Inheritance) (0) | 2012.08.22 |