可以实例化给定类名的类吗? 是否可以在C++中执行反射,并将一个类的名称实例化为字符串?< /p>

可以实例化给定类名的类吗? 是否可以在C++中执行反射,并将一个类的名称实例化为字符串?< /p>,c++,visual-c++,C++,Visual C++,干杯,没有语言功能允许您这样做。但是,您可以编写自己的工厂函数集,并将它们放在字符串索引映射中。没有语言功能允许您这样做。但是,您可以编写自己的工厂函数集,并将其放入字符串索引映射中。如果您可以使用MFC,它有一个对象序列化框架,允许您执行此操作。这是有案可查的。只是想澄清一下,MFC可以用于无UI的应用程序,我已经看到它以这种方式被非常成功地使用 如果不能使用MFC,可以考虑Boost序列化库。但据我所知,它不提供工厂函数,允许您创建给定名称的类。但是,它确实具有根据类的名称动态创建类的机制,

干杯,

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

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

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


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

如果您可以使用MFC,它有一个对象序列化框架,允许您这样做。这是有案可查的。只是想澄清一下,MFC可以用于无UI的应用程序,我已经看到它以这种方式被非常成功地使用


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

C++中没有反射。最好的方法是将字符串映射到它所表示的类。一般来说,不,当然,如果(className==“XYZ”)p=new XYZ(),您可以编写形式为
if(className==“XYZ”)的代码;如果(className==“ABC”)p=newabc(),则为elseetcNo和否。但这听起来像是一个错误。也许如果你描述了你想要达到的目标,有人可以提出一个替代的解决方案。注意一个副本,但是很相关,并且HeluuVa读到:C++中没有反射。最好的方法是将字符串映射到它所表示的类。一般来说,不,当然,如果(className==“XYZ”)p=new XYZ(),您可以编写形式为
if(className==“XYZ”)的代码;如果(className==“ABC”)p=newabc(),则为elseetcNo和否。但这听起来像是一个错误。也许如果你描述了你想要实现的目标,有人可以建议一个替代解决方案。请注意一个重复的,但非常相关的和helluva阅读: