Удаление CObject::operator
Для версии выпуска библиотеки, оператор удалить освобождает память, выделенную оператором новый.
void PASCAL operator delete(
void* p
);
void PASCAL operator delete(
void* p,
void* pPlace
);
void PASCAL operator delete(
void* p,
LPCSTR lpszFileName,
int nLine
);
Заметки
В отладочной версии, оператор удалить участвует в схеме распределение- наблюдения конструированной для обнаружения утечек памяти.
При использовании линию кода
#define new DEBUG_NEW
прежде чем какая-либо из конкретных реализаций в cpp-файле, затем третья версия удалить будут использоваться, храниться имя файла и номер линии в блоке для последующего создания отчетов.Не следует беспокоиться о указания дополнительных параметров; макрос позаботится о то автоматически.
Даже если не используется DEBUG_NEW в режиме отладки, то все равно получить обнаружение утечек, но без отчета о числа линии исходного файла, описанной выше.
При переопределении операторов новый и удалить, то создается диагностическая forfeit эту возможность.
Пример
См. перечисление CObList::CObList для класса CAge, используемого в примерах CObject.
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);
}
Требования
Header: afx.h