Possible Duplicate:
Is there a way to instantiate objects from a string holding their class name?
我编写了一个Vbo模板类,以与opengl中的顶点缓冲区对象一起使用。我正在用c ++编写多个平台的文章。
我想在运行时从配置文件中设置类型。
例如
<vbo type="bump_vt" ... />
Vbo* pVbo = new Vbo<bump_vt>(...);
有没有什么办法可以做到这一点而没有很大的障碍,例如
Vbo* pVbo;
if( sType.compareTo("bump_vt") == 0 )
pVbo = new Vbo<bump_vt>(...);
else if
...
谢谢
最佳答案
C ++不允许这样做,因为类型是在编译期间解析的。
但是您可以使用std :: map简化该过程。
关于c++ - 在运行时指定对象类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12567277/