Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Member
Ö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 CHeapPtr CComHeapPtreigene 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".