0

重複の可能性:
クラス名を保持する文字列からオブジェクトをインスタンス化する方法はありますか?

opengl で頂点バッファー オブジェクトを操作する Vbo テンプレート クラスを作成しました。私は複数のプラットフォーム向けに 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 に答える