CObject::operator nuovo
Per la versione finale della raccolta, l'operatore new esegue un'allocazione di memoria ottimale in modo simile a 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
);
Note
Nella versione di debug, l'operatore new fa parte di una combinazione di allocazione- monitoraggio progettata per il rilevamento delle perdite di memoria.
Se si utilizza la riga di codice
#define new DEBUG_NEW
prima che qualsiasi delle implementazioni in un file di .CPP, la seconda versione new vengano utilizzate, memorizzare il nome file e il numero di riga nel blocco allocato per la segnalazione successiva.Non è necessario preoccuparsi per fornire parametri aggiuntivi; una macro consente infatti di tale automaticamente.
Anche se non si utilizza DEBUG_NEW in modalità di debug, visualizzato ancora il rilevamento di perdite, ma senza la creazione del numero di riga del file di origine sopra descritta.
[!NOTA]
Se si esegue l'override di questo operatore, è anche necessario eseguire l'override delete.Non utilizzare la funzione standard _new_handler di libreria.
Esempio
Vedere CObList::CObList per un elenco CAge utilizzata negli esempi 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);
}
Requisiti
Header: afx.h