注册类(类的注册)

实现类的注册方法:

ModuleManger.h

1.定义根类IModule,其它类都是继承自它。

2.定义typedef std::map<std::string, IModule*> STRING_MODULE_MAP; 用于存放注册类的指针。

3. #define DECLEAR_MODULE(className) \ //.注册类的申明
class RegisterModule##className \
{\
public: \

RegisterModule##className() \ //类的构造函数

{ \

IModule* pClass=new className; \
pClass-> setName(#className); \
GetModuleFactoryMap()[#className] = pClass; \

} \

}; \


4. #define REGISTER_MODULE(className) \ //注册
static className::RegisterModule##className registerModule##className;


ModuleManger.cpp

STRING_MODULE_MAP& GetModuleFactoryMap()
{
static STRING_MODULE_MAP M_moduleMap; //定义静态的M_moduleMap容器变量,存放注册类
return M_moduleMap;
}


taoke.h

class taoke_proc: public IModule
{
public:
...
DECLEAR_MODULE(taoke_proc) //申明了一个子类

};

taoke.cpp

REGISTER_MODULE(taoke_proc) //定义了静态的子类。会自动调用其构造函数,从而会向静态的M_moduleMap //容器中添加进taoke_proc类。就实现了taoke_proc的注册,可以通 //过M_moduleMap来实现taoke_proc的调用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值