可以实例化给定类名的类

Possible to instantiate a class given class name?

本文关键字:实例化      更新时间:2023-10-16

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

干杯,

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

如果你可以使用MFC,它有一个对象序列化框架可以让你做到这一点。此处对此进行了记录。只是为了澄清一下,MFC可以用于无UI的应用程序,我已经看到它以这种方式被非常成功地使用。

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