[완료] c++ 문법 질문 : const 함수 오버로딩 관련
글쓴이: syayiyip / 작성시간: 수, 2011/04/20 - 10:11오전
#include <stdio.h> class A { public: void p() { printf("10\n"); } void p() const { printf("20\n"); } }; int main(void) { A a; A const b; a.p(); b.p(); return 0; }
실행결과는 아래와 같습니다.
------
10
20
------
보시다시피 오버로딩 규칙에 의해 a 는 const 가 아니라서 p 호출시 10이 출력되고 b 는 const 로 선언되어서 p 호출시 20이 출력됩니다.
이처럼, const 로 선언 되었느냐의 여부에 따라서 두 개의 오버로딩된 함수 p 가 각각 다르게 호출되는데요.
const 가 아닌 a 에서 const로 선언된 함수 p() 를 호출하는 방법이 있나요?
Forums:
http://codepad.org/xxsrpnOe 위
http://codepad.org/xxsrpnOe
위처럼 뭔가로 감쌀수도 있고
프록시객체로 해결볼수도 있습니다.
effective c++이였는지 more effective c++이엿는지에 친절하게 설명됬던 사례로 기역나네요
const_cast !!!
이럴 때 casting 하면 되죠. 아니면 const 참조를...
감사합니다.
감사합니다. 두 분 덕에 의문점이 해결되었습니다.
댓글 달기