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/

10-12 03:41