在TGE_1_5_2提供的starter.racing中的代码里出现了若干**Group,比如MissionCleanUp, MissionGroup, ServerGroup。
其实其实质都是利用new SimGroup(name)所创建起来的一系列的SimObject的容器。具体SimObject的作用参见点击打开链接。其类型在引擎中表现为class SimGroup: public SimSet,然后通过DECLARE_CONOBJECT(SimGroup),将SimGroup暴露到控制台。
DECLARE_CONOBJECT这是一个宏命令,具体定义如下
#define DECLARE_CONOBJECT(className) \
static ConcreteClassRep<className> dynClassRep; \
static AbstractClassRep* getParentStaticClassRep(); \
static AbstractClassRep* getStaticClassRep(); \
virtual AbstractClassRep* getClassRep() const
原理是利用宏替换创建相应class的代理类。