DECLARE_DYNAMIC()
用于获取RTTI,当一个派生自CObject
类的类时,我就知道了。
但我在代码中看到,派生自CPropertySheet
的类具有此MACRO。
- >是什么需要它,因为既没有使用iskindof()也没有使用任何其他运行时信息?
这个派生类有两个构造函数,在创建对象时称为new
。
我的问题是DECLARE_DYNAMIC()
在这堂课中有什么需要?
答案 0 :(得分:2)
使用此宏可以轻松地以MFC方式进行类型检查。假设您有一个特殊的CPropertyPage基类,或者您有一个特殊的派生CPropertySheet,其中有一个名为CMyClass的特殊接口,您可以使用DYNAMIC_DOWNCAST轻松进行类型检查。
所以快速回答是:如果要使用DYNAMIC_DOWNCAST或STATIC_DOWNCAST进行MFC类型检查。它只允许使用IsKindOf。
它是tripple DECLARE_DYNAMIC,DECLARE_DYNCREATE,DECLARE_SERIAL的最低形式。
此外,堆栈溢出还有更多answers。