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é CAutoVectorPtr odkazuje . |
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ý CAutoVectorPtr odkazuje . |
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ý , CAutoPtr
jediný 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é CAutoVectorPtr
odkazuje .
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í Detach
je 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ý CAutoVectorPtr
odkazuje .
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.