MFC 动态创建

来源:互联网 发布:360浏览器有没有mac版 编辑:程序博客网 时间:2024/05/16 05:31

1、动态创建的目的?为了解决平时程序在执行期间,不能根据获得的一个类名去产生一个对象的问题。


2、怎样去构建表?首先创建一个名为CRuntimeClass的结构体,其中包括6个成员:

类名称(ClassName)、类的大小(ClassSize)、类地址(ClassAddress)、 创建对象的函数(CObject* A::CreateObject())、上一个CRuntimeClass地址、下一个CRuntimeClass地址。从COject::ClassObject开始,在创建每一个类的时候,都是依照CRuntimeClass这个结构的创建先后去连接的,而不是类之间的继承关系。


3、怎么寻找类名?CRuntimeClass有一个静态的指针,名为CRuntimeClass::pFirstClass,指向最后创建的那个CRuntimeClass结构体上。通过这个去调用CRuntimeClass的成员m_pNextClass,并判断其类名是否与要找的是否相等。


4、怎么创建对象?如果找到的时候,这个CRuntimeClass结构体的指针就可以去调用成员函数CRuntimeClass;;CreateObject()。






0 0