关于DECLARE

    xiaoxiao2021-03-25  73

    DECLARE_DYNAMIC 表示可以运行时识别该类

    DECLARE_DYNCREATE 包含了DECLARE_DYNAMIC的功能,并且可以在运行过程中动态创建对象。如果需要动态创建类对象,需要使用这个宏定义。

     

    DECLARE_DYNCREAT定义如下:

    #define DECLARE_DYNCREATE(class_name) \

        DECLARE_DYNAMIC(class_name)\

        static CObjectPASCALCreateObject();(这一句就是DECLARE_DYNCREATE多出来的一句)

    这里是DECLARE_DYNAMIC声明的(本质上就是声明了一个CruntimClass,并且提供了一个可以获取CruntimeClass的函数)

    DECLARE_DYNAMIC(class_name)

    public:

        staticconst CRuntimeClassclass##class_name;

        virtual CRuntimeClassGetRuntimeClass()const;

     

    RUNTIME_CLASS的本质,就是获取该类的类型为CruntTimeClass的成员变量

    转载请注明原文地址: https://ju.6miu.com/read-35375.html

    最新回复(0)