Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 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.