Suppression de CObject::operator
Pour la version Release de la bibliothèque, l'opérateur supprimer libère la mémoire allouée par l'opérateur nouveau.
void PASCAL operator delete(
void* p
);
void PASCAL operator delete(
void* p,
void* pPlace
);
void PASCAL operator delete(
void* p,
LPCSTR lpszFileName,
int nLine
);
Notes
Dans la version debug, l'opérateur supprimer 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 troisième version de supprimer 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.
Si vous substituez des opérateurs nouveau et supprimer, vous renoncez à cette capacité de diagnostic.
Exemple
Consultez CObList::CObList pour obtenir l'intégralité de la classe d' CAge utilisée dans les exemples d' 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);
}
Configuration requise
Header: afx.h