ページ 11

派生クラスの動的確保をやめたい

Posted: 2012年5月19日(土) 15:09
by 霜焼け
シューティングゲームをC++で製作しています。
今、敵の基本クラスから各雑魚敵をそれぞれ派生クラスで作ったところです。
敵は下記のようにlistで管理するつもりなのですが、どうも効率よく書けません。

//Enemy:敵の基本クラス
//EnemyA,B:敵の派生クラス

std::list<Enemy *> enemylist;
enemylist.push_back( new EnemyA() );
enemylist.push_back( new EnemyB() );

一応希望通り動くのですが、敵クラスを動的確保するのは重くなるのでなるべくしたくありません。
しかし他の方法が思いつかないので、良い方法を教えてください。
また、このアホ丸出しの件名もどうにかしたいですが……。

よろしくお願いします。

Re: 派生クラスの動的確保をやめたい

Posted: 2012年5月19日(土) 15:26
by nullptr
弾ならともかく敵は動的確保でもいい気はしますが・・・気になるなら動的確保の回数を減らす工夫をするとかでも十分じゃないでしょうかね。
どうしても動的確保はしたくないのなら配置newなりなんなりでアロケータを実装すればいいと思います。

Re: 派生クラスの動的確保をやめたい

Posted: 2012年5月19日(土) 16:36
by 霜焼け
なるほど、アロケータですか。
今調べてきたのですが、これなら何とかなりそうです。
どちらにしろ敵も弾も同じ処理を考えていたので助かりました。
ありがとうございました