C++; 如何将字符串(类的名称)转换为类型?

Rav*_*avi 2 c++ types factory class

函数应该包含类的名称并返回该类型的对象.如何在C++中做到这一点?

And*_*nck 7

这称为反射,不是C++语言的一部分.可以使用通常称为工厂模式的东西来实现.它的工作方式是,对于您希望能够创建的每种类型,您可以在可以创建此类对象的函数及其名称之间创建映射.

这种映射可以像std::map键一样简单,其中键是类的名称,值是指向返回类的新实例的函数的函数指针.

  • @Preet:正如术语所暗示的,来自拉丁语,intro_spection_只会是关于_observing_的反射的一部分. (4认同)