CObject::operator nouveau
Pour la version Release de la bibliothèque, l'opérateur nouveau effectue une allocation de mémoire optimal d'une manière similaire à 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
);
Notes
Dans la version debug, l'opérateur nouveau participe à un modèle d'allocation- analyse conçue pour détecter les fuites de mémoire.
Si vous utilisez la ligne de code
#define new DEBUG_NEW
avant une de vos implémentations dans un fichier .cpp, la deuxième version de nouveau sera utilisée, en enregistrant le nom du fichier et le numéro de ligne dans le bloc alloué pour l'enregistrement ultérieurement. Vous n'avez pas à vous préoccuper de fournir des paramètres supplémentaires ; une macro se charge de place pour vous.
Même si vous n'utilisez pas DEBUG_NEW en mode débogage, vous obtenez toujours la détection des fuites, mais sans inscription de numéro de ligne du fichier source décrit ci-dessus.
Notes
Si vous remplacez cet opérateur, vous devez substituer supprimer.n'utilisez pas la fonction standard de _new_handler de bibliothèque.
Exemple
Consultez CObList::CObList pour obtenir l'intégralité de la classe d' CAge utilisée dans les exemples d' 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);
}
Configuration requise
Header: afx.h