Udostępnij przez


Klasa CAutoVectorPtr

Ta klasa reprezentuje inteligentny obiekt wskaźnika przy użyciu operatorów wektorów nowych i usuwania.

Ważne

Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.

Składnia

template<typename T>
class CAutoVectorPtr

Parametry

T
Typ wskaźnika.

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
CAutoVectorPtr::CAutoVectorPtr Konstruktor.
CAutoVectorPtr::~CAutoVectorPtr Destruktora.

Metody publiczne

Nazwa/nazwisko opis
CAutoVectorPtr::Przydziel Wywołaj tę metodę, aby przydzielić pamięć wymaganą przez tablicę obiektów wskazywanych przez CAutoVectorPtrelement .
CAutoVectorPtr::Attach Wywołaj tę metodę, aby przejąć własność istniejącego wskaźnika.
CAutoVectorPtr::D etach Wywołaj tę metodę, aby zwolnić własność wskaźnika.
CAutoVectorPtr::Free Wywołaj tę metodę, aby usunąć obiekt wskazywany przez CAutoVectorPtrobiekt .

Operatory publiczne

Nazwa/nazwisko opis
CAutoVectorPtr::operator T * Operator rzutowania.
CAutoVectorPtr::operator = Operator przypisania.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CAutoVectorPtr::m_p Zmienna składowa danych wskaźnika.

Uwagi

Ta klasa udostępnia metody tworzenia inteligentnego wskaźnika i zarządzania nim, co pomoże chronić przed wyciekami pamięci dzięki automatycznemu zwalnianiu zasobów, gdy wykracza poza zakres. CAutoVectorPtr jest podobna do CAutoPtr, jedyną różnicą jest to, że CAutoVectorPtr używa vector new[] i vector delete[] do przydzielania i wolnej pamięci zamiast C++ new i delete operatorów. Zobacz CAutoVectorPtrElementTraits , jeśli wymagane są klasy kolekcji CAutoVectorPtr .

Zobacz Temat CAutoPtr , aby zapoznać się z przykładem użycia klasy inteligentnego wskaźnika.

Wymagania

Nagłówek: atlbase.h

CAutoVectorPtr::Przydziel

Wywołaj tę metodę, aby przydzielić pamięć wymaganą przez tablicę obiektów wskazywanych przez CAutoVectorPtrelement .

bool Allocate(size_t nElements) throw();

Parametry

nElements
Liczba elementów w tablicy.

Wartość zwracana

Zwraca wartość true, jeśli pamięć została pomyślnie przydzielona, wartość false w przypadku niepowodzenia.

Uwagi

W kompilacjach debugowania wystąpi błąd asercji, jeśli zmienna składowa CAutoVectorPtr::m_p obecnie wskazuje istniejącą wartość, czyli nie jest równa null.

CAutoVectorPtr::Attach

Wywołaj tę metodę, aby przejąć własność istniejącego wskaźnika.

void Attach(T* p) throw();

Parametry

p
Obiekt CAutoVectorPtr przejmie na własność ten wskaźnik.

Uwagi

CAutoVectorPtr Gdy obiekt przejmuje własność wskaźnika, automatycznie usunie wskaźnik i wszystkie przydzielone dane, gdy wyjdą poza zakres. Jeśli wywołana jest klasa CAutoVectorPtr::D etach , programista ponownie ponosi odpowiedzialność za zwalnianie przydzielonych zasobów.

W kompilacjach debugowania wystąpi błąd asercji, jeśli zmienna składowa CAutoVectorPtr::m_p obecnie wskazuje istniejącą wartość, czyli nie jest równa null.

CAutoVectorPtr::CAutoVectorPtr

Konstruktor.

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

Parametry

p
Istniejący wskaźnik.

Uwagi

Obiekt CAutoVectorPtr można utworzyć przy użyciu istniejącego wskaźnika, w tym przypadku przenosi własność wskaźnika.

CAutoVectorPtr::~CAutoVectorPtr

Destruktora.

~CAutoVectorPtr() throw();

Uwagi

Zwalnia wszystkie przydzielone zasoby. Wywołuje CAutoVectorPtr ::Free.

CAutoVectorPtr::D etach

Wywołaj tę metodę, aby zwolnić własność wskaźnika.

T* Detach() throw();

Wartość zwracana

Zwraca kopię wskaźnika.

Uwagi

Zwalnia własność wskaźnika, ustawia zmienną składową CAutoVectorPtr::m_p wartość NULL i zwraca kopię wskaźnika. Po wywołaniu Detachmetody program musi zwolnić przydzielone zasoby, nad którymi CAutoVectorPtr obiekt mógł wcześniej objąć odpowiedzialność.

CAutoVectorPtr::Free

Wywołaj tę metodę, aby usunąć obiekt wskazywany przez CAutoVectorPtrobiekt .

void Free() throw();

Uwagi

Obiekt wskazywany przez CAutoVectorPtr obiekt jest zwalniany, a zmienna składowa CAutoVectorPtr::m_p jest ustawiona na wartość NULL.

CAutoVectorPtr::m_p

Zmienna składowa danych wskaźnika.

T* m_p;

Uwagi

Ta zmienna składowa przechowuje informacje o wskaźniku.

CAutoVectorPtr::operator =

Operator przypisania.

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

Parametry

p
Wskaźnik.

Wartość zwracana

Zwraca odwołanie do obiektu CAutoVectorPtr< T >.

Uwagi

Operator przypisania odłącza CAutoVectorPtr obiekt od dowolnego bieżącego wskaźnika i dołącza nowy wskaźnik, p, w jego miejscu.

CAutoVectorPtr::operator T *

Operator rzutowania.

operator T*() const throw();

Uwagi

Zwraca wskaźnik do typu danych obiektu zdefiniowanego w szablonie klasy.

Zobacz też

Klasa CAutoPtr
Omówienie klasy