C++ 계통 상속간의 인터 페이스
글쓴이: ikpil / 작성시간: 월, 2008/06/02 - 10:43오전
상속할때 private 로 상속하면, 파생 클래스에선 .. 다 접근 못한다고 배웠는데..
... public 이나 private나 차이가 없습니다. 아래 코드 포함합니다.
혹시 VC 2005에선, ... 개념이 날라갔나요;;?
using namespace std; class CTest { public: int public_c; protected: int protected_b; private: int private_a; }; class Devied : private CTest { public: void public_fun(void) { cout << public_c << endl; } void protected_fun(void) { cout << protected_b<< endl; } void private_fun(void) { cout << private_a << endl; } };
Forums:
이게 컴파일 된다면
댓글이 두개 달렸네요-_-; 이쪽은 무시해주세요. 죄송합니다.
이게 컴파일 된다면
이게 컴파일 된다면 정말로 VC++이 맛이간 것입니다.
참고로 말씀하시는 걸로 봐선 뭔가 오해하고 계신듯합니다.
private 상속하면 부모클래스의 것들을 private멤버로 받는 것입니다.
즉 부모클래스에서 public이나 protected로 지정된 멤버함수나 변수들은 그대로 쓸수 있습니다.
여기서 컴파일이 안되야 하는 이유는 private_fun 함수가 부모클래스의 '원래부터' private인 멤버를 쓸려고 하기 때문입니다.
즉 상속된 것들까지 포함하여 Devied를 적어본다면
이렇게 되어있는 셈입니다.
아!
잘못 이해하고 있었습니다
감사합니다 재미있네요.
http://www.ikpil.com
댓글 달기