|
1.
클래스 A(자식)가 B(부모)를 상속받았다고 가정했을 때,
A* a = NULL;
B* b = new B();
a = dynamic_cast<A*>(b);
이렇게 자식 타입이 부모를 다운케스팅했는데 NULL이 들어 옵니다.
어떤 경우에 케스팅이 되고 어떤 경우에 안되는지 궁금합니다.
덩치가 큰 클래스들을 다운케스팅을 해서 자주 쓰는데 NULL이 들어온 적은 없었거덩요..
간단한 테스트를 하다가 문뜩 NULL이 나오길래 질문올립니다.
2.
자식 타입이 부모를 다운케스팅받게 해놓고 컴파일을 했는데
부모 클래스 is not a defined class with virtual fuctions. 이렇게 에러를 띄웁니다.
자식 타입이 부모를 받을 때 부모의 함수중에는 반드시 가상 함수가 존재해야 하나요?
왜 이런지 궁금합니다.
답변 부탁드릴께요...
|