Condividi tramite


Classe CHeapPtrBase

Questa classe costituisce la base per diverse classi di puntatori heap intelligenti.

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

template <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase

Parametri

T
Tipo di oggetto da archiviare nell'heap.

Allocator
Classe di allocazione della memoria da usare. Per impostazione predefinita, le routine CRT vengono usate per allocare e liberare memoria.

Membri

Costruttori pubblici

Nome Descrizione
CHeapPtrBase::~CHeapPtrBase Distruttore.

Metodi pubblici

Nome Descrizione
CHeapPtrBase::AllocateBytes Chiamare questo metodo per allocare memoria.
CHeapPtrBase::Attach Chiamare questo metodo per acquisire la proprietà di un puntatore esistente.
CHeapPtrBase::Detach Chiamare questo metodo per rilasciare la proprietà di un puntatore.
CHeapPtrBase::Free Chiamare questo metodo per eliminare un oggetto a cui punta un oggetto CHeapPtrBase.
CHeapPtrBase::ReallocateBytes Chiamare questo metodo per riallocare la memoria.

Operatori pubblici

Nome Descrizione
CHeapPtrBase::operator T* Operatore cast.
CHeapPtrBase::operator & Operatore & .
CHeapPtrBase::operator -> Operatore da puntatore a membro.

Membri dati pubblici

Nome Descrizione
CHeapPtrBase::m_pData Variabile membro dati del puntatore.

Osservazioni:

Questa classe costituisce la base per diverse classi di puntatori heap intelligenti. Le classi derivate, CHeapPtr ad esempio e CComHeapPtr, aggiungono costruttori e operatori personalizzati. Vedere queste classi per esempi di implementazione.

Requisiti

Intestazione: atlcore.h

CHeapPtrBase::AllocateBytes

Chiamare questo metodo per allocare memoria.

bool AllocateBytes(size_t nBytes) throw();

Parametri

nBytes
Numero di byte di memoria da allocare.

Valore restituito

Restituisce true se la memoria viene allocata correttamente, false in caso contrario.

Osservazioni:

Nelle compilazioni di debug si verificherà un errore di asserzione se la CHeapPtrBase::m_pData variabile membro punta attualmente a un valore esistente, ovvero non è uguale a NULL.

CHeapPtrBase::Attach

Chiamare questo metodo per acquisire la proprietà di un puntatore esistente.

void Attach(T* pData) throw();

Parametri

pData
L'oggetto CHeapPtrBase assumerà la proprietà di questo puntatore.

Osservazioni:

Quando un CHeapPtrBase oggetto assume la proprietà di un puntatore, elimina automaticamente il puntatore e tutti i dati allocati quando escono dall'ambito.

Nelle compilazioni di debug si verificherà un errore di asserzione se la CHeapPtrBase::m_pData variabile membro punta attualmente a un valore esistente, ovvero non è uguale a NULL.

CHeapPtrBase::~CHeapPtrBase

Distruttore.

~CHeapPtrBase() throw();

Osservazioni:

Libera tutte le risorse allocate.

CHeapPtrBase::Detach

Chiamare questo metodo per rilasciare la proprietà di un puntatore.

T* Detach() throw();

Valore restituito

Restituisce una copia del puntatore.

Osservazioni:

Rilascia la proprietà di un puntatore, imposta la CHeapPtrBase::m_pData variabile membro su NULL e restituisce una copia del puntatore.

CHeapPtrBase::Free

Chiamare questo metodo per eliminare un oggetto a cui punta un oggetto CHeapPtrBase.

void Free() throw();

Osservazioni:

L'oggetto CHeapPtrBase a cui punta viene liberato e la CHeapPtrBase::m_pData variabile membro è impostata su NULL.

CHeapPtrBase::m_pData

Variabile membro dati del puntatore.

T* m_pData;

Osservazioni:

Questa variabile membro contiene le informazioni sul puntatore.

CHeapPtrBase::operator &

Operatore & .

T** operator&() throw();

Valore restituito

Restituisce l'indirizzo dell'oggetto a cui punta l'oggetto CHeapPtrBase .

CHeapPtrBase::operator ->

Operatore da puntatore a membro.

T* operator->() const throw();

Valore restituito

Restituisce il valore della CHeapPtrBase::m_pData variabile membro.

Osservazioni:

Utilizzare questo operatore per chiamare un metodo in una classe a cui punta l'oggetto CHeapPtrBase . Nelle compilazioni di debug si verificherà un errore di asserzione se punta CHeapPtrBase a NULL.

CHeapPtrBase::operator T*

Operatore cast.

operator T*() const throw();

Osservazioni:

Restituisce CHeapPtrBase::m_pData.

CHeapPtrBase::ReallocateBytes

Chiamare questo metodo per riallocare la memoria.

bool ReallocateBytes(size_t nBytes) throw();

Parametri

nBytes
Nuova quantità di memoria da allocare, in byte.

Valore restituito

Restituisce true se la memoria viene allocata correttamente, false in caso contrario.

Vedi anche

Classe CHeapPtr
Classe CComHeapPtr
Panoramica della classe