부모 클래스 "base"와 "base"에서 상속받은 다른 클래스 "derived"가 있습니다.dynamic_cast 대 부모 클래스의 가상 함수 노출 (C++)
"derived"에는 1 가지 방법 cH1이 있습니다. 나는이 할 경우
는 :
base* b = new derived();
을 그리고 나는이 작업을 수행 할 수 있도록하려면 :
- : 분명히
b->cH1();
나는 2 개 솔루션가 없습니다 cH1을 순수 가상으로 기본으로 선언하십시오.
또는 이렇게 :
더 나은 방법입니다 하나dynamic_cast<derived*>(b)->cH1();
?
대문자 잠금 키를 끄십시오. 'PARENT'는 이름이 매크로임을 제안합니다. 'parent'는 일반적인 사용법입니다. –
나는 당신의 머리에서 가장 큰 문제는 "부모"와 "자식"이라는 단어를 사용하는 것일 수 있다고 말하고 싶습니다. 그것들은 기초 파생 클래스와 파생 클래스를위한 * 정말 끔찍한 * 은유입니다 : 일반적으로 말하자면, 아이는 대개 부모가 아니며 더 구체적인 부모 인스턴스도 아닙니다. 훨씬 더 나은 은유는 "기본 클래스"와 "파생 된 클래스"입니다. –
구문 문제가 수정되었습니다. – Kam