delete 演算子のオーバーロード

提供: RAD Studio
移動先: 案内検索

new および delete 演算子:インデックス への移動


グローバルな演算子 ::operator delete() および ::operator delete[]() はオーバーロードできません。しかし,ユーザー自身の処理実行によってこれらの演算子のデフォルトをオーバーライドできます。グローバルな delete 関数のインスタンスは,プログラムの中に 1 つしか存在できません。

ユーザー定義の演算子 delete は void 型を返さなければならず,最初の引数として void* をとらなければなりません。size_t 型を持つ 2 番目の引数はオプションです。クラス T は T::operator delete[]() と T::operator delete() のそれぞれに 1 つ定義できます。delete 演算子をオーバーロードするには,以下のプロトタイプを使います。

  • void operator delete(void *Type_ptr, [size_t Type_size]); //非配列
  • void operator delete[](size_t Type_ptr, [size_t Type_size]); //配列

関連項目