struct Window
{
Window () {}
virtual int GetElem () const { return 0; }
};
struct SpecialWindow : public Window
{
SpecialWindow () : Window() {}
virtual int GetElem () const { return 1; }
};
int main ( void )
{
Window * pBaseWindow = new Window ();
SpecialWindow * pWindow1 = dynamic_cast <SpecialWindow *> ( pBaseWindow );
cout << pWindow1->GetElem () << endl;
return 0;
}
형들 dynamic_cast 중에 null 반환하는건 알겠는데
왜 지 멋대로 안된다고 판단하고 null 을 반환하는 걸까
내 생각에는 가상 함수 테이블 이 Window 에서 SpecialWindow 로 캐스팅 되면서
늘어나기 때문에 캐스팅 안시켜 주는 거 같은데.. 어떻게 테스트 해야 할지 감이 안잡혀
좀 알려줘~
에러가 아니라 크래시야 형들~ 튕기는거 크래시라고 하는거 맞지?
Window * pBaseWindow = new SpecialWindow (); 하던가 가상함수 하도 간만이라 기억잘 안나는데..