CHeapPtr-Klasse
Eine intelligente Zeigerklasse zum Verwalten von Heapzeigern.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
template<typename T, class Allocator=CCRTAllocator>
class CHeapPtr : public CHeapPtrBase<T, Allocator>
Parameter
T
Der Objekttyp, der im Heap gespeichert werden soll.
Verteiler
Die zu verwendende Speicherzuordnungsklasse.
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CHeapPtr::CHeapPtr | Der Konstruktor. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CHeapPtr::Assigned | Rufen Sie diese Methode auf, um dem Heap Speicher zuzuweisen, um Objekte zu speichern. |
CHeapPtr::Reallocate | Rufen Sie diese Methode auf, um den Speicher im Heap neu zu verlagern. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
CHeapPtr::operator = | Der -Zuweisungsoperator. |
Hinweise
CHeapPtr
wird von CHeapPtrBase abgeleitet und verwendet standardmäßig die CRT-Routinen (in CCRTAllocator), um Arbeitsspeicher zuzuweisen und freizugeben. Die Klasse CHeapPtrList kann verwendet werden, um eine Liste von Heapzeigern zu erstellen. Siehe auch CComHeapPtr, das COM-Speicherzuordnungsroutinen verwendet.
Vererbungshierarchie
CHeapPtr
Anforderungen
Header: atlcore.h
CHeapPtr::Assigned
Rufen Sie diese Methode auf, um dem Heap Speicher zuzuweisen, um Objekte zu speichern.
bool Allocate(size_t nElements = 1) throw();
Parameter
nElements
Die Anzahl der Elemente, die zum Berechnen der zuzuordnenden Arbeitsspeichermenge verwendet werden. Der Standardwert ist 1.
Rückgabewert
Gibt "true" zurück, wenn der Speicher erfolgreich zugewiesen wurde, "false bei Fehler".
Hinweise
Die Allocator-Routinen werden verwendet, um genügend Arbeitsspeicher auf dem Heap zu reservieren, um nElement-Objekte eines typs zu speichern, der im Konstruktor definiert ist.
Beispiel
// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
CHeapPtr::CHeapPtr
Der Konstruktor.
CHeapPtr() throw();
explicit CHeapPtr(T* p) throw();
CHeapPtr(CHeapPtr<T, Allocator>& p) throw();
Parameter
p
Ein vorhandener Heapzeiger oder ein vorhandener Heapzeiger.CHeapPtr
Hinweise
Der Heapzeiger kann optional mit einem vorhandenen Zeiger oder einem CHeapPtr
Objekt erstellt werden. In diesem Fall übernimmt das neue CHeapPtr
Objekt die Verantwortung für die Verwaltung des neuen Zeigers und der neuen Ressourcen.
Beispiel
// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Create a new CHeapPtr from the first
CHeapPtr <int> myHP2(myHP);
CHeapPtr::operator =
Zuweisungsoperator.
CHeapPtr<T, Allocator>& operator=(
CHeapPtr<T, Allocator>& p) throw();
Parameter
p
Ein vorhandenes CHeapPtr
-Objekt.
Rückgabewert
Gibt einen Verweis auf die aktualisierte CHeapPtr
Zurück.
Beispiel
// 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
Rufen Sie diese Methode auf, um den Speicher im Heap neu zu verlagern.
bool Reallocate(size_t nElements) throw();
Parameter
nElements
Die neue Anzahl der Elemente, die zum Berechnen des zuzuordnenden Arbeitsspeichers verwendet werden.
Rückgabewert
Gibt "true" zurück, wenn der Speicher erfolgreich zugewiesen wurde, "false bei Fehler".
Beispiel
// 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);