#include "stdafx.h"
class CWnd
{
public:
virtual void Create()
{
printf("CWnd Create
");
PreCreateWindow();
}
virtual void PreCreateWindow()
{
printf("CWnd PreCreateWindow
");
}
};
class MainFrame:public CWnd
{
public:
virtual void PreCreateWindow()
{
printf("MainFrame PreCreateWindow
");
}
};
int _tmain(int argc, _TCHAR* argv[])
{
MainFrame* p=new MainFrame;
p->Create();
return 0;
}
打印
CWnd Create
MainFrame PreCreateWindow
声明virtual后,根据指针指向类型调用,优先调用子类,没有改写则调用父类。
不声明virual 根据指针类型调用。