Share via


CObject::operator delete

ライブラリのリリース環境では、delete 演算子は new 演算子で割り当てたメモリを解放します。

void PASCAL operator delete(
   void* p 
);
void PASCAL operator delete(
   void* p,
   void* pPlace
);
void PASCAL operator delete(
   void* p,
   LPCSTR lpszFileName,
   int nLine 
);

解説

デバッグ環境では、delete 演算子はメモリ リークを検出するためにデザインされたアロケーション モニタリング スキーマに組み入れられます。

コード行を使用する場合は、次のようにします。

#define new DEBUG_NEW

このコード行を .CPP ファイル内のすべての実装の前に使用する場合は、delete の 3 番目の構文が使用され、後でレポートできるようにファイル名と行番号が格納されます。 補足的なパラメーターは、マクロによって追加されます。

デバッグ環境で DEBUG_NEW を使用しなくても、メモリ リークを検出できます。ただし、ソース ファイル名や行番号はレポートされません。

new 演算子と delete 演算子をオーバーライドすると、この診断機能が働かなくなります。

使用例

CObject の例で使われている CAge クラスのリストについては、「CObList::CObList」を参照してください。

void CAge::operator delete(void* p)
{
   free(p);
}

void CAge::operator delete(void *p, LPCSTR lpszFileName, int nLine)
{
   UNREFERENCED_PARAMETER(lpszFileName);
   UNREFERENCED_PARAMETER(nLine);
   free(p);
}

必要条件

**ヘッダー:**afx.h

参照

参照

CObject クラス

階層図

CObject::operator new

その他の技術情報

CObject のメンバー