[C++]クラス名の文字列からそのクラスのインスタンスを生成する方法
Posted: 2015年7月25日(土) 23:56
C++のクラスについての質問です。
抽象クラスBASEを継承したクラスがCLASS1~CLASS10まであるとします。
同じクラスを継承したクラスのインスタンスをまとめて制御したいため、基底クラスのvectorを作って管理しています。
std::vector<BASE*> classes;
classes.push_back(new CLASS1());
classes.push_back(new CLASS2());
...
classes.push_back(new CLASS10());
たいした記述量ではないのですが、新しいクラスを定義した時に追加する処理が地味に面倒に感じます。
なので上記のようなプログラムをfor文で書けるようになればとても都合がいいのです。
具体的には、テキストファイルにクラス名のリストを書いておき、それを読み込みながらクラスのインスタンスを生成したいです。
C#ではできなくはないみたいなのですが、C++でこれを実現するのは無理でしょうか?
抽象クラスBASEを継承したクラスがCLASS1~CLASS10まであるとします。
同じクラスを継承したクラスのインスタンスをまとめて制御したいため、基底クラスのvectorを作って管理しています。
std::vector<BASE*> classes;
classes.push_back(new CLASS1());
classes.push_back(new CLASS2());
...
classes.push_back(new CLASS10());
たいした記述量ではないのですが、新しいクラスを定義した時に追加する処理が地味に面倒に感じます。
なので上記のようなプログラムをfor文で書けるようになればとても都合がいいのです。
具体的には、テキストファイルにクラス名のリストを書いておき、それを読み込みながらクラスのインスタンスを生成したいです。
C#ではできなくはないみたいなのですが、C++でこれを実現するのは無理でしょうか?