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 로 캐스팅 되면서

늘어나기 때문에 캐스팅 안시켜 주는 거 같은데.. 어떻게 테스트 해야 할지 감이 안잡혀
좀 알려줘~