Condividi tramite


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

Vedere anche

Riferimenti

Classe CObject

Grafico delle gerarchie

Eliminazione di CObject::operator