虚函数简单总结

#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 根据指针类型调用。
原文地址:https://www.cnblogs.com/Browneyes/p/6100109.html