delete

提供: Appmethod Topics
移動先: 案内検索

キーワード(アルファベット順):インデックス への移動


カテゴリ

演算子,C++ 特有のキーワード

構文



 void operator delete(void *ptr) throw();
 void operator delete(void *ptr, const std::nothrow_t&) throw();
 void operator delete[](void *ptr) throw();
 void operator delete[](void *ptr, const std::nothrow_t &) throw();
 void operator delete(void *ptr, void *) throw();   // 配置形式
 void operator delete[](void *ptr, void *) throw(); // 配置形式



解説

delete 演算子では,new の呼び出しで割り当てられたメモリブロックが解放されます。標準ライブラリ関数 free とよく似ていますが,delete の方が機能的に優れています。

new 演算子で割り当てられたメモリはすべて delete 演算子で解放する必要があります。メモリの解放に失敗した場合は,メモリのリークが発生する可能性があります。

operator delete のデフォルト配置形式は予約済みであり,再定義できません。デフォルト配置演算子 new でメモリを割り当てていないため,デフォルト配置演算子 delete はアクションを実行しません。new 演算子の配置バージョンをオーバーロードする場合,適切な宣言で delete 配置演算子のオーバーロードを提供することは(必須ではありませんが)よい考えです。

関連項目