Share via


operator delete (<new>)

個々のオブジェクトに割り当てられたストレージを解放するために delete 式で呼び出される関数です。

void operator delete( 
   void* _Ptr 
) throw( ); 
void operator delete( 
   void *,  
   void * 
) throw( ); 
void operator delete( 
   void* _Ptr, 
   const std::nothrow_t& 
) throw( );

パラメーター

  • _Ptr
    削除によって値が無効にされるポインター。

解説

最初の関数は delete 式で _Ptr の値を無効化するために呼び出されます。 プログラムは、標準 C++ ライブラリで定義されている既定のバージョンを置き換えるこの関数シグネチャを持つ関数を定義できます。 必須の動作が NULL の場合、または operator new (size_t) に前の呼び出しによって返される _Ptr の値を受け入れることです。

_Ptr の null 値の既定の動作では、何も行われません。 _Ptr のそのほかの値は、前に説明したように呼び出すと、以前に返された値である必要があります。 _Ptr のこのような以外の値の既定の動作では、前の呼び出しで割り当てられたメモリを解放します。 このコントロールでは、このような解放されたストレージがすべて operator new (size_t) への以降の呼び出しによって部分または calloc (size_t)、malloc (size_t)、または realloc (void*size_t) またはに割り当てられている条件がで指定されていません。

2 番目の関数は、フォーム new (std::size_t) の新しい式に対応する配置の delete 式で呼び出されます。 これは、何も行いません。

3 番目の関数は、フォーム new (std::size_tconst std::nothrow_t&) の新しい式に対応する配置の delete 式で呼び出されます。 プログラムは、標準 C++ ライブラリで定義されている既定のバージョンを置き換えるこの関数シグネチャを持つ関数を定義できます。 必須の動作が NULL の場合、または operator new (size_t) に前の呼び出しによって返される _Ptr の値を受け入れることです。 既定の動作では、delete (_Ptr) を評価します。

使用例

例については、" operator new を参照してください operator deleteを使用できます。

必要条件

新しい <ヘッダー: >

名前空間: std