在Doom3的引擎中,为什么id使用CLASS_PROTOTYPE宏而不是在idClass中添加变量

时间:2017-05-14 09:11:00

标签: c++ macros game-engine

我想了解有关游戏引擎的更多信息,因此我开始阅读Doom3的引擎代码。在这部分代码中:

/*
================
CLASS_PROTOTYPE

This macro must be included in the definition of any subclass of idClass.
It prototypes variables used in class instanciation and type checking.
Use this on single inheritance concrete classes only.
================
*/
    #define CLASS_PROTOTYPE( nameofclass )                                  \
    public:                                                                 \
        static  idTypeInfo                      Type;                       \
        static  idClass                         *CreateInstance();  \
        virtual idTypeInfo                      *GetType() const;       \
        static  idEventFunc<nameofclass>        eventCallbacks[]

我不明白为什么id包含了从idClass派生的每个类的宏,而不是仅仅在idClass本身中包含这些变量。任何人都可以解释这背后的原因吗?

0 个答案:

没有答案