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