0

可能重复:
有没有办法从保存类名的字符串中实例化对象?

我编写了一个 Vbo 模板类来处理 opengl 中的顶点缓冲区对象。我正在用 C++ 编写多个平台。

我想在运行时从配置文件中设置类型。

例如

<vbo type="bump_vt" ... />

Vbo* pVbo = new Vbo<bump_vt>(...);

有没有什么方法可以在没有大的 if else 块的情况下做到这一点,例如

 Vbo* pVbo;

if( sType.compareTo("bump_vt") == 0 )
    pVbo = new Vbo<bump_vt>(...);
else if
    ...

谢谢

4

1 回答 1

2

C++ 不允许这样做,因为类型是在编译期间解析的。

但是您可以使用 std::map 来简化该过程。

于 2012-09-24T14:49:26.673 回答