Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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.