基底クラスとなるTaskクラスを定義し、そこから敵やら弾やらのクラスを派生する形で作っているのですが、std::listに項目を追加・削除する作業をnew・deleteのオーバーロードで行いたいです。newは、第一引数にnew演算子の型のバイトサイズが渡されます。少なくとも第一引数のバイト数は書き込み可能なメモリブロックを戻り値とします。deleteは、delete演算子のオペランドのメモリブロックがそのまま渡されます。そのメモリブロックは既に解体済み(デストラクタが呼ばれた後)なので、通常はメモリブロックの解放処理を記述します。newの場合は受け取ったメモリブロックをそのまま返すだけですが)なので、そこでTask型の存在を前提とした処理を行うということは普通はしないのではないかと思います。通常ならそれはコンストラクタ/デストラクタの仕事ではないかと。operatorのオーバーロードではありません。operatorはオーバーロードできません。malloc/free相当部分は変更が出来るものの,コンストラクタの呼び出しやその引数は変更できません。newの引数をオブジェクトに引き渡すには,別の領域に保持しておいて,そこから値を取得するしかありません。deleteが原則的に必要です。deleteが呼ばれます。deleteが呼ばれるので注意。newはsize_tを受け取ってvoid*を返しているようなのですが...具体的に何をやっているのかよく分かりませんこの辺のnew、deleteに関する知識は、STLで使用されているallocatorを自作してみると理解できます。重要なのは4つの関数で行われている動作です。allocate、deallocate、construct、destroyこれらが「いつ呼び出されて」「何をしているのか」が理解できれば、new、deleteの動作に関する疑問は解消されることでしょう。4年前newとdeleteの仕組みについて、興味があったので自分なりにコードを書いてみました。一応動いているみたいですが、まだよくわかっていないこともあり問題あるコードだと思いますので詳しい方のチェックお願いします。ミクプラは自由にリンクできます。