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