Share via


CHeapPtr-klasse

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Een slimme aanwijzerklasse voor het beheren van heap-pointers.

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

template<typename T, class Allocator=CCRTAllocator>
class CHeapPtr : public CHeapPtrBase<T, Allocator>

Parameterwaarden

T
Het objecttype dat moet worden opgeslagen op de heap.

Allocator
De geheugentoewijzingsklasse die moet worden gebruikt.

Leden

Openbare constructors

Naam Description
CHeapPtr::CHeapPtr De constructor.

Openbare methoden

Naam Description
CHeapPtr::Toewijzen Roep deze methode aan om geheugen toe te wijzen aan de heap om objecten op te slaan.
CHeapPtr::Reallocate Roep deze methode aan om het geheugen op de heap opnieuw toe te staan.

Openbare operators

Naam Description
CHeapPtr::operator = De toewijzingsoperator.

Opmerkingen

CHeapPtr is afgeleid van CHeapPtrBase en maakt standaard gebruik van de CRT-routines (in CCRTAllocator) om geheugen toe te wijzen en vrij te maken. De klasse CHeapPtrList kan worden gebruikt om een lijst met heap-aanwijzers te maken. Zie ook CComHeapPtr, die com geheugentoewijzing routines gebruikt.

Overnamehiƫrarchie

CHeapPtrBase

CHeapPtr

Requirements

Header: atlcore.h

CHeapPtr::Toewijzen

Roep deze methode aan om geheugen toe te wijzen aan de heap om objecten op te slaan.

bool Allocate(size_t nElements = 1) throw();

Parameterwaarden

nElements
Het aantal elementen dat wordt gebruikt om de hoeveelheid geheugen te berekenen die moet worden toegewezen. De standaardwaarde is 1.

Retourwaarde

Retourneert waar als het geheugen is toegewezen, onwaar bij fout.

Opmerkingen

De allocator-routines worden gebruikt om voldoende geheugen op de heap te reserveren voor het opslaan van nElement-objecten van een type dat is gedefinieerd in de constructor.

Example

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);

CHeapPtr::CHeapPtr

De constructor.

CHeapPtr() throw();
explicit CHeapPtr(T* p) throw();
CHeapPtr(CHeapPtr<T, Allocator>& p) throw();

Parameterwaarden

p
Een bestaande heapaanwijzer of CHeapPtr.

Opmerkingen

De heap-aanwijzer kan eventueel worden gemaakt met behulp van een bestaande aanwijzer of een CHeapPtr object. Zo ja, dan neemt het nieuwe CHeapPtr object de verantwoordelijkheid voor het beheren van de nieuwe aanwijzer en resources.

Example

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Create a new CHeapPtr from the first
CHeapPtr <int> myHP2(myHP);   

CHeapPtr::operator =

Toewijzingsoperator.

CHeapPtr<T, Allocator>& operator=(
    CHeapPtr<T, Allocator>& p) throw();

Parameterwaarden

p
Een bestaand CHeapPtr object.

Retourwaarde

Retourneert een verwijzing naar de bijgewerkte CHeapPtr.

Example

// 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

Roep deze methode aan om het geheugen op de heap opnieuw toe te staan.

bool Reallocate(size_t nElements) throw();

Parameterwaarden

nElements
Het nieuwe aantal elementen dat wordt gebruikt om de hoeveelheid geheugen te berekenen die moet worden toegewezen.

Retourwaarde

Retourneert waar als het geheugen is toegewezen, onwaar bij fout.

Example

// 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);   

Zie ook

CHeapPtrBase-klasse
CCRTAllocator-klasse
Overzicht van klassen