delete
カテゴリ
構文
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(); // Placement form void operator delete[](void *ptr, void *) throw(); // Placement form
説明
delete 演算子では、new への呼び出しで割り当てられたメモリ ブロックを解放します。これは、標準ライブラリ関数 free と似ていますが、より優れています。
new 演算子によって割り当てられたメモリはすべて、delete 演算子を使用して解放しなければなりません。メモリを解放し損ねると、メモリ リークが発生する可能性があります。
operator delete のデフォルトの配置形式は、予約済みであり、再定義できません。 デフォルトで配置された delete 演算子は、何の動作も行いません(デフォルトで配置された new 演算子がメモリを割り当ててないため)。演算子 new の配置版をオーバーロードする場合、配置 delete 演算子のオーバーロードを、相当するシグニチャで提供するのは、よい習慣です(ただし、必須ではありません)。