는 부모 클래스가 부모 클래스를 확장하고, 두 개의 자식 클래스는 부모 클래스 확장이 있습니다 : 자식 1, 자식 2, 나는이 같은 부모 클래스와 자식을 참조 :C++ 자식 클래스가
function(Parent *c){
c->someMethod();
}
하지만, 아이에게는 child2에없는 메소드가 있습니다. 나는 문은 클래스가이 같은 자식 1인지 여부를 판단하는 경우를 추가하려고 :
function(Parent *c){
if(c->getType() == 'child1'){
c->someMethod();
}
}
하지만 오류가 온다 '클래스 부모'에는 멤버 이름이 없다 '는 것으로 someMethod'그래서 어떻게 다루는?
명백한 대답은 "캐스팅"입니다. * 올바른 * 대답은 "다형성을 잘못 사용하기 때문에 디자인을 다시 방문합니다"입니다. –
[방문자 패턴] (https://en.wikipedia.org/wiki/Visitor_pattern)은 가능한 재 설계입니다. – Jarod42