Teilen über


CHeapPtrBase-Klasse

Diese Klasse bildet die Basis für mehrere intelligente Heapzeigerklassen.

Wichtig

Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Syntax

template <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase

Parameter

T
Der Objekttyp, der im Heap gespeichert werden soll.

Allocator
Die zu verwendende Speicherzuordnungsklasse. Standardmäßig werden CRT-Routinen verwendet, um Arbeitsspeicher zuzuweisen und freizugeben.

Mitglieder

Öffentliche Konstruktoren

Name Beschreibung
CHeapPtrBase::~CHeapPtrBase Der Destruktor.

Öffentliche Methoden

Name Beschreibung
CHeapPtrBase::AllocateBytes Rufen Sie diese Methode auf, um Arbeitsspeicher zuzuweisen.
CHeapPtrBase::Attach Rufen Sie diese Methode auf, um den Besitz eines vorhandenen Zeigers zu übernehmen.
CHeapPtrBase::Detach Rufen Sie diese Methode auf, um den Besitz eines Zeigers freizugeben.
CHeapPtrBase::Free Rufen Sie diese Methode auf, um ein Objekt zu löschen, das von einem CHeapPtrBase.
CHeapPtrBase::ReallocateBytes Rufen Sie diese Methode auf, um Speicher neu zu verlagern.

Öffentliche Operatoren

Name Beschreibung
CHeapPtrBase::operator T* Der Umwandlungsoperator.
CHeapPtrBase::operator & Der &Operator.
CHeapPtrBase::operator -> Der Zeiger-zu-Member-Operator.

Öffentliche Datenmmber

Name Beschreibung
CHeapPtrBase::m_pData Die Membervariable für Zeigerdaten.

Hinweise

Diese Klasse bildet die Basis für mehrere intelligente Heapzeigerklassen. Die abgeleiteten Klassen fügen beispielsweise CHeapPtrCComHeapPtreigene Konstruktoren und Operatoren hinzu. In diesen Klassen finden Sie Implementierungsbeispiele.

Anforderungen

Header: atlcore.h

CHeapPtrBase::AllocateBytes

Rufen Sie diese Methode auf, um Arbeitsspeicher zuzuweisen.

bool AllocateBytes(size_t nBytes) throw();

Parameter

nBytes
Die Anzahl der zuzuweisenden Bytes des Arbeitsspeichers.

Rückgabewert

Gibt true zurück, wenn der Speicher erfolgreich zugeordnet wurde, andernfalls "false".

Hinweise

In Debugbuilds tritt ein Assertionsfehler auf, wenn die CHeapPtrBase::m_pData Membervariable derzeit auf einen vorhandenen Wert verweist, d. h. es ist nicht gleich NULL.

CHeapPtrBase::Attach

Rufen Sie diese Methode auf, um den Besitz eines vorhandenen Zeigers zu übernehmen.

void Attach(T* pData) throw();

Parameter

pData
Das CHeapPtrBase Objekt übernimmt den Besitz dieses Zeigers.

Hinweise

Wenn ein CHeapPtrBase Objekt den Besitz eines Zeigers übernimmt, löscht es automatisch den Zeiger und alle zugeordneten Daten, wenn es außerhalb des Gültigkeitsbereichs ist.

In Debugbuilds tritt ein Assertionsfehler auf, wenn die CHeapPtrBase::m_pData Membervariable derzeit auf einen vorhandenen Wert verweist, d. h. es ist nicht gleich NULL.

CHeapPtrBase::~CHeapPtrBase

Der Destruktor.

~CHeapPtrBase() throw();

Hinweise

Gibt alle zugeordneten Ressourcen frei.

CHeapPtrBase::Detach

Rufen Sie diese Methode auf, um den Besitz eines Zeigers freizugeben.

T* Detach() throw();

Rückgabewert

Gibt eine Kopie des Zeigers zurück.

Hinweise

Gibt den Besitz eines Zeigers frei, legt die CHeapPtrBase::m_pData Membervariable auf NULL fest und gibt eine Kopie des Zeigers zurück.

CHeapPtrBase::Free

Rufen Sie diese Methode auf, um ein Objekt zu löschen, das von einem CHeapPtrBase.

void Free() throw();

Hinweise

Das Objekt, auf das durch die CHeapPtrBase Zeichenfolge verwiesen wird, wird freigegeben, und die CHeapPtrBase::m_pData Membervariable wird auf NULL festgelegt.

CHeapPtrBase::m_pData

Die Membervariable für Zeigerdaten.

T* m_pData;

Hinweise

Diese Membervariable enthält die Zeigerinformationen.

CHeapPtrBase::operator &

Der &Operator.

T** operator&() throw();

Rückgabewert

Gibt die Adresse des Objekts zurück, auf das das CHeapPtrBase Objekt verweist.

CHeapPtrBase::operator ->

Der Zeiger-zu-Member-Operator.

T* operator->() const throw();

Rückgabewert

Gibt den Wert der CHeapPtrBase::m_pData Membervariablen zurück.

Hinweise

Verwenden Sie diesen Operator, um eine Methode in einer Klasse aufzurufen, auf die das CHeapPtrBase Objekt verweist. In Debugbuilds tritt ein Assertionsfehler auf, wenn der CHeapPtrBase Wert auf NULL verweist.

CHeapPtrBase::operator T*

Der Umwandlungsoperator.

operator T*() const throw();

Hinweise

Gibt CHeapPtrBase::m_pData zurück.

CHeapPtrBase::ReallocateBytes

Rufen Sie diese Methode auf, um Speicher neu zu verlagern.

bool ReallocateBytes(size_t nBytes) throw();

Parameter

nBytes
Die neue Speichermenge, die in Byte zugeordnet werden soll.

Rückgabewert

Gibt true zurück, wenn der Speicher erfolgreich zugeordnet wurde, andernfalls "false".

Siehe auch

CHeapPtr-Klasse
CComHeapPtr-Klasse
Klassenübersicht