我想了解有关游戏引擎的更多信息,因此我开始阅读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本身中包含这些变量。任何人都可以解释这背后的原因吗?