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