MFC RTTI和动态创建问题

2025-04-25 21:49:45
推荐回答(3个)
回答1:

CObject类实现了RTTI和动态创建,所以mfc的从CObject类继承的子类都可以。大多数MFC类的根类或基类都是CObject

回答2:

1、mfc比c++的rtti出现的时间早,微软不得不自己搞一套。
2、c++的rtti还没有实现序列化(把类型信息存盘),这样就无法动态创建,而mfc要直持动态创建和序列化。

回答3:

不知道你注意到这个结构体了没有:struct AFX_CLASSINIT。这个结构体它定义了一个构造函数。这个函数就实现了m_pNextClass指向下一个类的CRuntimeClass对象。比如说现在创建了一个CView类。在CView这前创建了CDocument类。而此时m_pNextClass就指向了CDocument的classCDocument了。不知道这个回答行不行。对于动态创建相对RTTI就多了一个createobject函数。这函数的实质也只是一个new classname而已。对于对象的成员变量要用到后面的persistence机制了。不知道你清楚了没有。