포인터 연산자 오버로딩
Programming/C++ 2012. 10. 4. 03:45 |포인터를 기반으로 하는 연산자 모두를 포인터 연산자라 한다. 그런데 그 중에서도 대표적인 포인터 연산자 둘은 다음과 같다.
-> 포인터가 가리키는 객체의 멤버에 접근.
* 포인터가 가리키는 객체에 접근.
※ 둘 다 피 연산자가 하나인 단항 연산자의 형태로 오버로딩 된다는 특징만 기억하면 된다.
19행: 이 함수는 객체자신의 주소 값을 반환하도록 -> 연산자를 오버로딩 하고 있다.
-> 연산자를 다른 형태로 오버로딩 하는 것도 가능하지만, 이 연산자의 오버로딩을 허용하는 이유는,
주소 값의 반환이 목적이기 때문에 다른 형태로는 오버로딩 하지 않는 것이 좋다.
38행: 19행의 멤버함수가 반환하는 것은 주소 값이니, ShowData 함수의 호출은 문법적으로 성립하지 않는다.
ex) num.operator->() ShowData();
때문에 반환되는 주소 값을 대상으로 적절한 연산이 가능하도록 -> 연산자를 하나 더 추가하여 진행해야 한다.
operator-> 함수가 반환하는 것이 주소 값이니, 이를 통한 멤버의 접근을 위해서 -> 연산자를 하나 더 추가시켜서 해석한 것이다.
'Programming > C++' 카테고리의 다른 글
()연산자 오버로딩과 펑터(Functor) (0) | 2012.10.07 |
---|---|
스마트 포인터 (0) | 2012.10.04 |
new, delete 연산자의 오버로딩 (0) | 2012.09.27 |
2차원 배열처럼 동작하는 객체 (0) | 2012.09.27 |
객체의 저장을 위한 배열 클래스의 정의 (0) | 2012.09.26 |