需要DECLARE_DYNAMIC?

时间:2016-03-02 07:02:24

标签: c++ visual-c++ mfc msdn

DECLARE_DYNAMIC()用于获取RTTI,当一个派生自CObject类的类时,我就知道了。 但我在代码中看到,派生自CPropertySheet的类具有此MACRO。    - >是什么需要它,因为既没有使用iskindof()也没有使用任何其他运行时信息?

这个派生类有两个构造函数,在创建对象时称为new

我的问题是DECLARE_DYNAMIC()在这堂课中有什么需要?

1 个答案:

答案 0 :(得分:2)

使用此宏可以轻松地以MFC方式进行类型检查。假设您有一个特殊的CPropertyPage基类,或者您有一个特殊的派生CPropertySheet,其中有一个名为CMyClass的特殊接口,您可以使用DYNAMIC_DOWNCAST轻松进行类型检查。

所以快速回答是:如果要使用DYNAMIC_DOWNCAST或STATIC_DOWNCAST进行MFC类型检查。它只允许使用IsKindOf。

它是tripple DECLARE_DYNAMIC,DECLARE_DYNCREATE,DECLARE_SERIAL的最低形式。

此外,堆栈溢出还有更多answers