cjweffort

博客园 首页 联系 订阅 管理

动态生成

参考文献:深入浅出MFC-侯捷

开始着手剖析动态生成的实现

有了类别型录网,就可以开始着手解决棘手的动态生成问题。动态生成的困难点在于你没有办法在程序执行期间,根据动态获得的一个类别名称(通常是读档),要求程序产生一个对象。如果我们能够把类别的大小记录在类别型录中,把构造函数(CruntimeClass::CreatObject)也记录在类别型录中,当程序在执行期间获得一个类别名称,它就可以在类别型录中找出对应的元素,然后调用其构造函数(这里所指的并非是C++中的构造函数),产生出对象。

因此可在CRuntimeClass中加以改进下,新的数据结构如下:






因此如果有一下语句,就可以组织成一棵大树



其中凡是m_pfnCreateObject不为NULL者,即可动态生成。图中CFrameWnd和CWnd即可动态生成。

注:其实动态生成技术是为了下文的Serialize技术做铺垫。

 

posted on 2013-06-01 09:41  cjweffort  阅读(203)  评论(0编辑  收藏  举报