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 vertegenwoordigt een slim aanwijzerobject met behulp van nieuwe vector- en verwijderoperators.
Belangrijk
Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.
Syntaxis
template<typename T>
class CAutoVectorPtr
Parameterwaarden
T
Het type aanwijzer.
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CAutoVectorPtr::CAutoVectorPtr | De constructor. |
| CAutoVectorPtr::~CAutoVectorPtr | De destructor. |
Openbare methoden
| Naam | Description |
|---|---|
| CAutoVectorPtr::Toewijzen | Roep deze methode aan om het geheugen toe te wijzen dat is vereist voor de matrix van objecten die door CAutoVectorPtrzijn verwezen. |
| CAutoVectorPtr::Attach | Roep deze methode aan om eigenaar te worden van een bestaande aanwijzer. |
| CAutoVectorPtr::D etach | Roep deze methode aan om het eigendom van een aanwijzer vrij te geven. |
| CAutoVectorPtr::Free | Roep deze methode aan om een object te verwijderen waarnaar wordt verwezen door een CAutoVectorPtr. |
Openbare operators
| Naam | Description |
|---|---|
| CAutoVectorPtr::operator T * | De cast-operator. |
| CAutoVectorPtr::operator = | De toewijzingsoperator. |
Publieke dataleden
| Naam | Description |
|---|---|
| CAutoVectorPtr::m_p | De gegevenslidvariabele aanwijzer. |
Opmerkingen
Deze klasse biedt methoden voor het maken en beheren van een slimme aanwijzer, waarmee u kunt beschermen tegen geheugenlekken door resources automatisch vrij te maken wanneer deze buiten het bereik valt.
CAutoVectorPtr is vergelijkbaar met CAutoPtr, het enige verschil dat CAutoVectorPtr wordt gebruikt vector new[] en vector delete[] om geheugen toe te wijzen en vrij te maken in plaats van de C++ new en delete operators. Zie CAutoVectorPtrElementTraits als verzamelingsklassen CAutoVectorPtr vereist zijn.
Zie CAutoPtr voor een voorbeeld van het gebruik van een slimme aanwijzerklasse.
Requirements
Header: atlbase.h
CAutoVectorPtr::Toewijzen
Roep deze methode aan om het geheugen toe te wijzen dat is vereist voor de matrix van objecten die door CAutoVectorPtrzijn verwezen.
bool Allocate(size_t nElements) throw();
Parameterwaarden
nElements
Het aantal elementen in de matrix.
Retourwaarde
Retourneert waar als het geheugen is toegewezen, onwaar bij fout.
Opmerkingen
In builds voor foutopsporing treedt er een assertiefout op als de CAutoVectorPtr::m_p lidvariabele momenteel verwijst naar een bestaande waarde; Dat wil gezegd, het is niet gelijk aan NULL.
CAutoVectorPtr::Attach
Roep deze methode aan om eigenaar te worden van een bestaande aanwijzer.
void Attach(T* p) throw();
Parameterwaarden
p
Het CAutoVectorPtr object wordt eigenaar van deze aanwijzer.
Opmerkingen
Wanneer een CAutoVectorPtr object eigenaar wordt van een aanwijzer, worden de aanwijzer en alle toegewezen gegevens automatisch verwijderd wanneer het buiten het bereik komt. Als CAutoVectorPtr::D etach wordt aangeroepen, krijgt de programmeur opnieuw de verantwoordelijkheid voor het vrijmaken van toegewezen resources.
In builds voor foutopsporing treedt er een assertiefout op als de CAutoVectorPtr::m_p lidvariabele momenteel verwijst naar een bestaande waarde; Dat wil gezegd, het is niet gelijk aan NULL.
CAutoVectorPtr::CAutoVectorPtr
De constructor.
CAutoVectorPtr() throw();
explicit CAutoVectorPtr(T* p) throw();
CAutoVectorPtr(CAutoVectorPtr<T>& p) throw();
Parameterwaarden
p
Een bestaande aanwijzer.
Opmerkingen
Het CAutoVectorPtr object kan worden gemaakt met behulp van een bestaande aanwijzer. In dat geval wordt het eigendom van de aanwijzer overgedragen.
CAutoVectorPtr::~CAutoVectorPtr
De destructor.
~CAutoVectorPtr() throw();
Opmerkingen
Alle toegewezen resources worden vrijgemaakt. Roept CAutoVectorPtr::Free.
CAutoVectorPtr::D etach
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 variabele CAutoVectorPtr::m_p lid in op NULL en retourneert een kopie van de aanwijzer. Na het aanroepen Detach, is het aan de programmeur om toegewezen resources vrij te maken waarvoor het CAutoVectorPtr object eerder verantwoordelijkheid heeft genomen.
CAutoVectorPtr::Free
Roep deze methode aan om een object te verwijderen waarnaar wordt verwezen door een CAutoVectorPtr.
void Free() throw();
Opmerkingen
Het object waarnaar wordt verwezen door de CAutoVectorPtr is vrijgemaakt en de variabele CAutoVectorPtr::m_p lid is ingesteld op NULL.
CAutoVectorPtr::m_p
De gegevenslidvariabele aanwijzer.
T* m_p;
Opmerkingen
Deze lidvariabele bevat de informatie over de aanwijzer.
CAutoVectorPtr::operator =
De toewijzingsoperator.
CAutoVectorPtr<T>& operator= (CAutoVectorPtr<T>& p) throw();
Parameterwaarden
p
Een aanwijzer.
Retourwaarde
Hiermee wordt een verwijzing naar een CAutoVectorPtr< T >geretourneerd.
Opmerkingen
De toewijzingsoperator koppelt het CAutoVectorPtr object los van een huidige aanwijzer en koppelt de nieuwe aanwijzer, p, op zijn plaats.
CAutoVectorPtr::operator T *
De cast-operator.
operator T*() const throw();
Opmerkingen
Retourneert een aanwijzer naar het objectgegevenstype dat is gedefinieerd in de klassesjabloon.