부모 클래스에서 자식 클래스의 private 멤버함수에 접근할 수 있는지 궁금합니다.
글쓴이: jungong87 / 작성시간: 금, 2013/10/18 - 2:22오후
c++로 개발하고 있는데요.
상속관계가 4단계로 나누어져 있습니다. A(최상위) -> B -> C -> D(말단) 의 순서로 상속받고 있는데요
A 클래스에서 virtual로 선언된 함수가 있습니다.(function() 이라고 가정 하겠습니다.) 그것을 C에서 상속받아 구현하고 있는데요. (다른 클래스에는 구현되어 있지 않음)
그 구현된 함수가 C에서 private 멤버로 선언이 되어 있습니다.
클래스를 인스턴스 화 할때는 A* = new D 의 형식으로 인스턴스화 되고 있습니다.
이럴 때 A->function() 이런 식으로 호출이 가능한지요?
아직 내공이 부족하여 질문 올립니다.
Forums:
해보면 이런 문제가 있네요.
ㅇ_ㅇ;; 에러는 찾아보면 되겠죠...
http://codepad.org/3AtlJPfr
해보니 되네요. 생성자에서 {}를 빼먹었네요.
A에 virtual이 있으면. test A 출력 http://codepad.org/MzMBzv24
A에 virtual이 없으면. test C 출력 http://codepad.org/vaRPs436
해보세요.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
문제 없습니다. 오버라이딩은 한객체(부모)가
문제 없습니다. 오버라이딩은 한객체(부모)가 다른객체(자식)를 호출하는게 아닙니다.
댓글 달기