void* operator new( size_t nSize ); throw( CMemoryException ); void* operator new( size_t nSize, LPCSTR lpszFileName, int nLine ); throw( CMemoryException );
Замечания
Для выпускаемой версии библиотеки, оператор new выполняет оптимальное распределение памяти способом подобным malloc. В отладочной версии, оператор new участвует в контролируемой схеме распределения, разработанной, чтобы обнаружить утечки памяти. Если Вы используете строку текста программы
#define new DEBUG_NEW
Перед любой из ваших реализаций в .CPP файле, затем в следующей версии, new будет использоваться, сохраняя имя файла и номер строки в распределенном блоке для последующего отчета. Вы не должны волноваться относительно обеспечения параметров дополнительного пространства, макрокоманда заботится о этом для Вас.
Даже если Вы не используете DEBUG_NEW в режиме oтладки, Вы все еще получаете обнаружение утечки, но без номера строки исходного файла. Если Вы перегружаете этот оператор, Вы должны также перегрузить delete. Не используйте функцию стандартной библиотеки _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) { return malloc(nSize); }