Share via


CAutoVectorPtr-klasse

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.

Zie ook

CAutoPtr-klasse
Overzicht van klassen