Freigeben über


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.

Zuweisung
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

CHeapPtrBase

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 CHeapPtrZurü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);   

Siehe auch

CHeapPtrBase-Klasse
CCRTAllocator-Klasse
Klassenübersicht