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.
Elementy członkowskie
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 CAutoVectorPtr element . |
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 CAutoVectorPtr obiekt . |
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 CAutoVectorPtr
element .
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 Detach
metody 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 CAutoVectorPtr
obiekt .
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.