Classe CHeapPtr
Classe puntatore intelligente per la gestione dei puntatori heap.
Importante
Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.
Sintassi
template<typename T, class Allocator=CCRTAllocator>
class CHeapPtr : public CHeapPtrBase<T, Allocator>
Parametri
T
Tipo di oggetto da archiviare nell'heap.
Allocatore
Classe di allocazione della memoria da usare.
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CHeapPtr::CHeapPtr | Costruttore. |
Metodi pubblici
Nome | Descrizione |
---|---|
CHeapPtr::Allocate | Chiamare questo metodo per allocare memoria nell'heap per archiviare gli oggetti. |
CHeapPtr::Reallocate | Chiamare questo metodo per riallocare la memoria nell'heap. |
Operatori pubblici
Nome | Descrizione |
---|---|
CHeapPtr::operator = | Operatore di assegnazione . |
Osservazioni:
CHeapPtr
è derivato da CHeapPtrBase e per impostazione predefinita usa le routine CRT (in CCRTAllocator) per allocare e liberare memoria. La classe CHeapPtrList può essere usata per costruire un elenco di puntatori heap. Vedere anche CComHeapPtr, che usa routine di allocazione della memoria COM.
Gerarchia di ereditarietà
CHeapPtr
Requisiti
Intestazione: atlcore.h
CHeapPtr::Allocate
Chiamare questo metodo per allocare memoria nell'heap per archiviare gli oggetti.
bool Allocate(size_t nElements = 1) throw();
Parametri
nElements
Numero di elementi utilizzati per calcolare la quantità di memoria da allocare. Il valore predefinito è 1.
Valore restituito
Restituisce true se la memoria è stata allocata correttamente, false in caso di errore.
Osservazioni:
Le routine di allocatore vengono usate per riservare memoria sufficiente nell'heap per archiviare oggetti nElement di un tipo definito nel costruttore.
Esempio
// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
CHeapPtr::CHeapPtr
Costruttore.
CHeapPtr() throw();
explicit CHeapPtr(T* p) throw();
CHeapPtr(CHeapPtr<T, Allocator>& p) throw();
Parametri
p
Puntatore heap esistente o CHeapPtr
.
Osservazioni:
Il puntatore dell'heap può essere creato facoltativamente usando un puntatore esistente o un CHeapPtr
oggetto . In tal caso, il nuovo CHeapPtr
oggetto assume la responsabilità di gestire il nuovo puntatore e le nuove risorse.
Esempio
// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Create a new CHeapPtr from the first
CHeapPtr <int> myHP2(myHP);
CHeapPtr::operator =
Operatore di assegnazione.
CHeapPtr<T, Allocator>& operator=(
CHeapPtr<T, Allocator>& p) throw();
Parametri
p
Oggetto CHeapPtr
esistente.
Valore restituito
Restituisce un riferimento all'oggetto aggiornato CHeapPtr
.
Esempio
// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
// Create a second heap pointer
// and assign it to the first pointer.
CHeapPtr <int> myHP2;
myHP2 = myHP;
CHeapPtr::Reallocate
Chiamare questo metodo per riallocare la memoria nell'heap.
bool Reallocate(size_t nElements) throw();
Parametri
nElements
Nuovo numero di elementi utilizzati per calcolare la quantità di memoria da allocare.
Valore restituito
Restituisce true se la memoria è stata allocata correttamente, false in caso di errore.
Esempio
// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
// Resize the allocated memory for 20 integers
myHP.Reallocate(20);
Vedi anche
Classe CHeapPtrBase
Classe CCRTAllocator
Cenni preliminari sulla classe