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