[완료] C++에서 () 연산자 오버로딩 규칙이 어떻게 되는지 궁금합니다.
글쓴이: vudghkzm / 작성시간: 화, 2007/04/17 - 10:07오전
아래와 같은 어떤 C++ 코드를 보았습니다.
template <typename T> class A { ... operator const T* () const { ... } operator T* () { ... } ... };
보아하니 () 연산자를 오버로딩 한것으로 보입니다만.. 원래 () 연산자를 오버로딩할 때는 syntax 규칙이 저렇게 구성되는것인가요?
연산자 오버로딩도 함수(function) 정의와 마찬가지의 syntax를 가지는 것으로 알고 있습니다. 예를 들어, '=' 연산자를 오버로딩하려면 A& operator = (const A& a) {} 와 같이... 리턴값 A&, 함수 인자 const A& 이렇게 일반적인 함수 정의와 똑같은 문법으로 구성하면 된다고 알고 있습니다.
근데 위와 같이 () 연산자 오버로딩은 규칙이 조금 다른거 같은데.. 설명 부탁드립니다.
그리고 C++에서 연산자 마다 오버로딩할 때 저마다의 규칙을 가지고 있는 것인지도 궁금합니다.
Forums:
그게 아니구요
타입 컨버젼 op입니다.
댓글 달기