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 di CObject

Grafico della gerarchia

Eliminazione di CObject::operator