关键字:
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. 使用方法
以上事例代码可以帮助理解如何找基类
具体使用代码