///////////根据CRuntimeClass创建对象///////////
CObject* CRuntimeClass::CreateObject()
{
if(m_pfnCreateObject==NULL) return NULL;
CObject *pObject;
pObject=(* m_pfnCreateObject)(); //函数指针调用
return pObject;
}
有了上面两个函数,我们在程序执行的时候调用,就可以动态创建对象了。
我们还可以更简单地实现动态创建,大家注意到,就是在我们的程序类里面有一个RUNTIME_CLASS(class_name)宏,这个宏在MFC里定义为:
RUNTIME_CLASS(class_name) ((CRuntimeClass*)(&class_name::class##class_name))
作用就是得到类的RunTime信息,即返回class_name所属CRuntimeClass的对象。在我们的应用程序员类(CMyWinApp)的InitInstance()函数下面的CSingleDocTemplate函数中,有:
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CMyView)
文章来源于领测软件测试网 https://www.ltesting.net/