タスクシステム総合スレ part7
■ このスレッドは過去ログ倉庫に格納されています
0837名前は開発中のものです。
2009/08/09(日) 00:49:09ID:4TaFdjmk> このようにタスクの削除にメモリ領域の解放を伴わないことによって自滅も
> 可能となり、プログラムの見通しが良くなる、という利点があります。
delete this できることが最初にあげた「ゲームの流れを自然な形で表現できる」
などの根拠になっているようですが、ここでタスクシステムとして紹介されて
いるような仕組みが無くとも delete this は可能です。
http://codezine.jp/article/detail/297?p=2
operator new/delete の独自定義も行っているのですが、本来メモリ割り当てと
解放しか行わないはずのこれらの処理の中でコンストラクタ・デストラクタ
相当の動作をしており、 C++ のオブジェクトモデルから外れてしまっています。
なにやら「デフラグ」という見慣れない機能があったのですが、実装を見ると
memmove() しています。これでは派生クラスのメンバには POD しか持てません。
どうも、この筆者は C++ に対する理解が不十分なようです。
おそらく std::list<Task> とでもすれば済みそうな仕組みを、標準ライブラリを
知らなかったがために一生懸命組み上げてしまった、その中で、自分が最近学んだ
珍しい機能を使ってみた、というものぐらいにしか見えません。
■ このスレッドは過去ログ倉庫に格納されています