C++根据类名创造不同的类对象(反射)

初衷

最近在写一个SDK,想实现一个管理类,通过传入不同的类名字符串,来实现动态创建不同类。
在Java等一些语音中,实现了一个机制:反射,个人理解可以通过字符串去创建对象,比如:

std::string a = "testBase";
//反射即可以通过字符串变量‘a’,来达到创建类”testBase“的目的

这里折中了一下,不通过传入类名来达到创建类对象,而是通过回调函数的名字来达到创建类的目的。

C++实现

函数指针

typedef void* (*funcp)();

定义一个基类,所有的动态类对象都由基类派生而来,管理类里面只需要保留基类指针即可。

class Base {
   
   
	public:
		virtual void run() {
   
   };
};	

具体实现类,通过派生Base得到,重点在于creatProduc

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值