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.