假设我们有一个基础结构元素接口:
class BaseFabricElenent {
public:
BaseFabricElenent(){}
virtual ~BaseFabricElenent(){}
virtual void action(){}
};
我们有一个枚举:
enum TypeCode {
TypeCodeLive = 10,
TypeCodeDie = 100
};
我们有我们的 TypeCode 的实现。
我们希望得到一种能像普通织物一样返回所需的织物type
。TypeCode
BaseFabricElenent*
如何通过预处理器定义向结构添加类型?
说:
class LiveFabricElenent: pulic BaseFabricElenent {
public:
LiveFabricElenent() :
BaseFabricElenent(){}
virtual ~LiveFabricElenent(){}
virtual void action(){}
};
ADD_TO_FABRIC(LiveFabricElenent);
更新:
找到这篇关于在全局初始化阶段将类型注册到工厂的有用文章 。剩下的就是创建一个将为类型注册生成存根类的定义。