Share via


CHeapPtrBase klas

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse vormt de basis voor verschillende klassen slimme heapaanwijzers.

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

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

Parameterwaarden

T
Het objecttype dat moet worden opgeslagen op de heap.

Allocator
De geheugentoewijzingsklasse die moet worden gebruikt. CRT-routines worden standaard gebruikt om geheugen toe te wijzen en vrij te maken.

Leden

Openbare constructors

Naam Description
CHeapPtrBase::~CHeapPtrBase De destructor.

Openbare methoden

Naam Description
CHeapPtrBase::AllocateBytes Roep deze methode aan om geheugen toe te wijzen.
CHeapPtrBase::Attach Roep deze methode aan om eigenaar te worden van een bestaande aanwijzer.
CHeapPtrBase::Detach Roep deze methode aan om het eigendom van een aanwijzer vrij te geven.
CHeapPtrBase::Free Roep deze methode aan om een object te verwijderen waarnaar wordt verwezen door een CHeapPtrBase.
CHeapPtrBase::ReallocateBytes Roep deze methode aan om geheugen opnieuw te toewijzen.

Openbare operators

Naam Description
CHeapPtrBase::operator T* De cast-operator.
CHeapPtrBase::operator & De operator &.
CHeapPtrBase::operator -> De aanwijzer-naar-lid-operator.

Leden van openbare gegevens

Naam Description
CHeapPtrBase::m_pData De gegevenslidvariabele aanwijzer.

Opmerkingen

Deze klasse vormt de basis voor verschillende klassen slimme heapaanwijzers. De afgeleide klassen voegen bijvoorbeeld CHeapPtrCComHeapPtrhun eigen constructors en operators toe. Zie deze klassen voor implementatievoorbeelden.

Requirements

Header: atlcore.h

CHeapPtrBase::AllocateBytes

Roep deze methode aan om geheugen toe te wijzen.

bool AllocateBytes(size_t nBytes) throw();

Parameterwaarden

nBytes
Het aantal bytes aan geheugen dat moet worden toegewezen.

Retourwaarde

Retourneert waar als het geheugen is toegewezen, anders onwaar.

Opmerkingen

In builds voor foutopsporing treedt er een assertiefout op als de lidvariabele momenteel verwijst naar een bestaande waarde. Dat wil zeggen dat deze CHeapPtrBase::m_pData niet gelijk is aan NULL.

CHeapPtrBase::Attach

Roep deze methode aan om eigenaar te worden van een bestaande aanwijzer.

void Attach(T* pData) throw();

Parameterwaarden

pData
Het CHeapPtrBase object wordt eigenaar van deze aanwijzer.

Opmerkingen

Wanneer een CHeapPtrBase object eigenaar wordt van een aanwijzer, worden de aanwijzer en alle toegewezen gegevens automatisch verwijderd wanneer het buiten het bereik komt.

In builds voor foutopsporing treedt er een assertiefout op als de lidvariabele momenteel verwijst naar een bestaande waarde. Dat wil zeggen dat deze CHeapPtrBase::m_pData niet gelijk is aan NULL.

CHeapPtrBase::~CHeapPtrBase

De destructor.

~CHeapPtrBase() throw();

Opmerkingen

Alle toegewezen resources worden vrijgemaakt.

CHeapPtrBase::Detach

Roep deze methode aan om het eigendom van een aanwijzer vrij te geven.

T* Detach() throw();

Retourwaarde

Retourneert een kopie van de aanwijzer.

Opmerkingen

Geeft het eigendom van een aanwijzer vrij, stelt de CHeapPtrBase::m_pData lidvariabele in op NULL en retourneert een kopie van de aanwijzer.

CHeapPtrBase::Free

Roep deze methode aan om een object te verwijderen waarnaar wordt verwezen door een CHeapPtrBase.

void Free() throw();

Opmerkingen

Het object waarnaar wordt verwezen door de CHeapPtrBase is vrijgemaakt en de CHeapPtrBase::m_pData lidvariabele is ingesteld op NULL.

CHeapPtrBase::m_pData

De gegevenslidvariabele aanwijzer.

T* m_pData;

Opmerkingen

Deze lidvariabele bevat de informatie over de aanwijzer.

CHeapPtrBase::operator &

De operator &.

T** operator&() throw();

Retourwaarde

Retourneert het adres van het object waarnaar wordt verwezen door het CHeapPtrBase object.

CHeapPtrBase::operator ->

De aanwijzer-naar-lid-operator.

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

Retourwaarde

Retourneert de waarde van de CHeapPtrBase::m_pData lidvariabele.

Opmerkingen

Gebruik deze operator om een methode aan te roepen in een klasse waarnaar wordt verwezen door het CHeapPtrBase object. In builds voor foutopsporing treedt er een assertiefout op als de CHeapPtrBase verwijst naar NULL.

CHeapPtrBase::operator T*

De cast-operator.

operator T*() const throw();

Opmerkingen

Retourneert CHeapPtrBase::m_pData.

CHeapPtrBase::ReallocateBytes

Roep deze methode aan om geheugen opnieuw te toewijzen.

bool ReallocateBytes(size_t nBytes) throw();

Parameterwaarden

nBytes
De nieuwe hoeveelheid geheugen die moet worden toegewezen, in bytes.

Retourwaarde

Retourneert waar als het geheugen is toegewezen, anders onwaar.

Zie ook

CHeapPtr klas
CComHeapPtr klas
Overzicht van klassen