ゲーム内に表示するオブジェクトについて、最近までコンストラクタにオブジェクトIDを渡す方式でインスタンス化していました。
例:
Monster* monster = new Monster( enum_monster_slime );
Monster* monster2 = new Monster( enum_monster_skeleton );
テンプレートクラスとファクトリークラスは
template<int monsterType>
class MonsterSubClass: public Monster {
MonsterSubClass(): Monster( monsterType ) { }
}
class MonsterFactory {
public:
static Monster* createMonster ( int monsterType ) {
Monster* monster = NULL;
switch( monsterType ) {
case enum_monster_slime:
monster = new MonsterSubClass<enum_monster_slime>();
......
}
return monster;
}
}
テンプレートによって数多くのクラス定義が生まれるのがいけないのでしょうか?
それとも、テンプレート化されたクラスは実行時に負担が大きいものなのでしょうか?
googleで調べてみても特にそう言った情報は見当たらず、困惑しています。
詳しい方いらっしゃいましたら、ご教授お願いします。