可以实例化给定类名的类吗?

时间:2013-11-25 23:48:40

标签: c++ visual-c++

是否可以在c ++中执行反射,并将类名称作为字符串实例化一个类?

干杯,

2 个答案:

答案 0 :(得分:5)

没有语言功能可以让你这样做。但是,您可以编写自己的工厂函数集,并将它们放在字符串索引的映射中。

答案 1 :(得分:0)

如果您可以使用MFC,它有一个允许您执行此操作的对象序列化框架。记录在案here。只是为了澄清一下,MFC可以用于UI少的应用程序,我已经看到它以这种方式非常成功地使用。

如果您不能使用MFC,可以考虑使用boost序列化库。但据我所知,它不提供允许您根据名称创建类的工厂函数。但是,它确实具有从其名称动态创建类的机制,您可以根据自己的独特需求进行调整。相关的doc就在这里。