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.
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
CComHeapPtr
eigene 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".