CObject::operator new
ライブラリのリリース環境では、new 演算子は malloc 関数と同じ方法で最適なメモリ割り当てを行います。
void* PASCAL operator new(
size_t nSize
);
void* PASCAL operator new(
size_t,
void* p
);
void* PASCAL operator new(
size_t nSize,
LPCSTR lpszFileName,
int nLine
);
解説
デバッグ環境では、new 演算子はメモリ リークを検出するためにデザインされたアロケーション モニタリング スキーマに組み入れられます。
コード行を使用する場合は、次のようにします。
#define new DEBUG_NEW
.CPP ファイル内のすべての実装の前である場合は 2 番目の構文 new が使用され、後でレポートできるように領域を確保したファイル名と行番号が格納されます。 補足的なパラメーターは、マクロによって追加されます。
デバッグ環境で DEBUG_NEW を使用しなくても、メモリ リークを検出できます。ただし、ソース ファイル名や行番号はレポートされません。
注意
この演算子をオーバーライドするときは、delete 演算子もオーバーライドする必要があります。 標準ライブラリの _new_handler 関数は使わないでください。
使用例
CObject の例で使われている CAge クラスのリストについては、「CObList::CObList」を参照してください。
void* CAge::operator new(size_t nSize)
{
return malloc(nSize);
}
void* CAge::operator new(size_t nSize, LPCSTR lpszFileName, int nLine)
{
UNREFERENCED_PARAMETER(lpszFileName);
UNREFERENCED_PARAMETER(nLine);
return malloc(nSize);
}
必要条件
**ヘッダー:**afx.h