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à

CHeapPtrBase

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