상속을 가상 메서드없이 수행 할 수 있습니까? 컴파일러는 다음 코드가 다형성이 아니라고 말합니다.클래스가 다형성이 아니기 때문에 다운 캐스트 할 수 없습니까?
예 :
우리가B
객체에
A
개체에서 다운 캐스트하려고하는 다른 클래스에서
Class A(){
int a;
int getA(){return a;};
}
Class B(): A(){
int b;
int getB(){return b;};
}
:
A *a;
B *b = dynamic_cast<B*>(a)
그러나 이것은 다음과 같은 오류 제공 :
cannot dynamic_cast ... (source type is polymorphic)
'a'는 포인터가 아닙니다. 이 코드가 코드에 어떻게 있습니까? – littleadv
죄송합니다. 실제로는 포인터입니다. – wbarksdale
그리고 컴파일 시간 또는 실행 시간 오류입니까? 실행 시간, 다음 IMHO 예상 된 동작. – littleadv