关键字:
DECLARE_DYNAMIC
IMPLEMENT_DYNAMIC
CRuntimeClass
1. C++的RTTI是通过编译器来实现的,而MFC的RTTI机制是通过在类中添加static变量来实现的。
这个变量就是 CRuntimeClass对象
2. CRuntimeClass 定义如下:
最重要的是
3. DECLARE_DYNAMIC 和 IMPLEMENT_DYNAMIC
使用这2个宏以后就会为每个类构造一个static CRuntimeClass 对象,这个CRuntimeClass对象里有m_pBaseClass的指针。
这样在该类实例构造的时候,每个派生类的class##class_name对象的m_pBaseClass指针就会指向他的基类,这样就可以通过链表来找到类层次结构上所有的类了
4. 使用方法
以上事例代码可以帮助理解如何找基类
具体使用代码
本文详细介绍了MFC运行时类型信息(RTTI)机制的实现原理,包括关键字DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC的作用,以及CRuntimeClass结构体如何帮助确定类继承关系。并通过示例展示了如何使用这些机制进行类型检查。
1882

被折叠的 条评论
为什么被折叠?



