Sdílet prostřednictvím


CAutoVectorPtr – třída

Tato třída představuje objekt inteligentního ukazatele pomocí vektorových nových a delete operátorů.

Důležité

Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

Syntaxe

template<typename T>
class CAutoVectorPtr

Parametry

T
Typ ukazatele.

Členové

Veřejné konstruktory

Název Popis
CAutoVectorPtr::CAutoVectorPtr Konstruktor
CAutoVectorPtr::~CAutoVectorPtr Destruktor.

Veřejné metody

Název Popis
CAutoVectorPtr::Přidělení Voláním této metody přidělte paměť požadovanou polem objektů, na které CAutoVectorPtrodkazuje .
CAutoVectorPtr::Attach Voláním této metody převezmete vlastnictví existujícího ukazatele.
CAutoVectorPtr::D etach Voláním této metody uvolníte vlastnictví ukazatele.
CAutoVectorPtr::Free Voláním této metody odstraníte objekt, na který CAutoVectorPtrodkazuje .

Veřejné operátory

Název Popis
CAutoVectorPtr::operator T * Operátor přetypování.
CAutoVectorPtr::operator = Operátor přiřazení.

Veřejné datové členy

Název Popis
CAutoVectorPtr::m_p Proměnná datového členu ukazatele.

Poznámky

Tato třída poskytuje metody pro vytváření a správu inteligentního ukazatele, což pomáhá chránit před nevracenou pamětí tím, že automaticky uvolní prostředky, když se vysadí mimo rozsah. CAutoVectorPtr je podobný , CAutoPtrjediný rozdíl je, že CAutoVectorPtr používá vector new[] a přiděluje a vector delete[] uvolní paměť místo C++ new a delete operátorů. Viz CAutoVectorPtrElementTraits, pokud jsou požadovány třídy CAutoVectorPtr kolekce.

Příklad použití třídy inteligentního ukazatele najdete v jazyce CAutoPtr .

Požadavky

Hlavička: atlbase.h

CAutoVectorPtr::Přidělení

Voláním této metody přidělte paměť požadovanou polem objektů, na které CAutoVectorPtrodkazuje .

bool Allocate(size_t nElements) throw();

Parametry

nElements
Počet prvků v poli.

Návratová hodnota

Vrátí hodnotu true, pokud je paměť úspěšně přidělena, false při selhání.

Poznámky

Při ladění sestavení dojde k selhání kontrolního výrazu , pokud CAutoVectorPtr::m_p členské proměnné aktuálně odkazuje na existující hodnotu; to znamená, že není rovna hodnotě NULL.

CAutoVectorPtr::Attach

Voláním této metody převezmete vlastnictví existujícího ukazatele.

void Attach(T* p) throw();

Parametry

p
Objekt CAutoVectorPtr převezme vlastnictví tohoto ukazatele.

Poznámky

CAutoVectorPtr Když objekt převezme vlastnictví ukazatele, automaticky odstraní ukazatel a všechna přidělená data, když přejde mimo rozsah. Pokud je volána CAutoVectorPtr::D etach , program je opět zodpovědný za uvolnění přidělených prostředků.

Při ladění sestavení dojde k selhání kontrolního výrazu , pokud CAutoVectorPtr::m_p členské proměnné aktuálně odkazuje na existující hodnotu; to znamená, že není rovna hodnotě NULL.

CAutoVectorPtr::CAutoVectorPtr

Konstruktor

CAutoVectorPtr() throw();
explicit CAutoVectorPtr(T* p) throw();
CAutoVectorPtr(CAutoVectorPtr<T>& p) throw();

Parametry

p
Existující ukazatel.

Poznámky

Objekt CAutoVectorPtr lze vytvořit pomocí existujícího ukazatele, v takovém případě přenese vlastnictví ukazatele.

CAutoVectorPtr::~CAutoVectorPtr

Destruktor.

~CAutoVectorPtr() throw();

Poznámky

Uvolní všechny přidělené prostředky. Volá CAutoVectorPtr::Free.

CAutoVectorPtr::D etach

Voláním této metody uvolníte vlastnictví ukazatele.

T* Detach() throw();

Návratová hodnota

Vrátí kopii ukazatele.

Poznámky

Uvolní vlastnictví ukazatele, nastaví CAutoVectorPtr::m_p členské proměnné null a vrátí kopii ukazatele. Po volání Detachje na programátora, aby uvolnil všechny přidělené prostředky, nad kterými CAutoVectorPtr objekt mohl dříve převzít odpovědnost.

CAutoVectorPtr::Free

Voláním této metody odstraníte objekt, na který CAutoVectorPtrodkazuje .

void Free() throw();

Poznámky

Objekt, na který odkazuje, CAutoVectorPtr je uvolněn a CAutoVectorPtr::m_p členské proměnné je nastavena na HODNOTU NULL.

CAutoVectorPtr::m_p

Proměnná datového členu ukazatele.

T* m_p;

Poznámky

Tato proměnná člena obsahuje informace o ukazateli.

CAutoVectorPtr::operator =

Operátor přiřazení.

CAutoVectorPtr<T>& operator= (CAutoVectorPtr<T>& p) throw();

Parametry

p
Ukazatel.

Návratová hodnota

Vrátí odkaz na CAutoVectorPtr< T >.

Poznámky

Operátor přiřazení odpojí objekt od libovolného aktuálního CAutoVectorPtr ukazatele a připojí nový ukazatel p na svém místě.

CAutoVectorPtr::operator T *

Operátor přetypování.

operator T*() const throw();

Poznámky

Vrátí ukazatel na datový typ objektu definovaný v šabloně třídy.

Viz také

CAutoPtr – třída
Přehled třídy