Klasa CHeapPtrBase
Ta klasa stanowi podstawę kilku inteligentnych klas wskaźników stert.
Ważne
Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.
Składnia
template <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase
Parametry
T
Typ obiektu, który ma być przechowywany na stercie.
Allocator
Klasa alokacji pamięci do użycia. Domyślnie procedury CRT są używane do przydzielania i zwalniania pamięci.
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CHeapPtrBase::~CHeapPtrBase |
Destruktora. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CHeapPtrBase::AllocateBytes |
Wywołaj tę metodę, aby przydzielić pamięć. |
CHeapPtrBase::Attach |
Wywołaj tę metodę, aby przejąć własność istniejącego wskaźnika. |
CHeapPtrBase::Detach |
Wywołaj tę metodę, aby zwolnić własność wskaźnika. |
CHeapPtrBase::Free |
Wywołaj tę metodę, aby usunąć obiekt wskazywany przez CHeapPtrBase obiekt . |
CHeapPtrBase::ReallocateBytes |
Wywołaj tę metodę, aby ponownie przydzielić pamięć. |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
CHeapPtrBase::operator T* |
Operator rzutowania. |
CHeapPtrBase::operator & |
Operator &. |
CHeapPtrBase::operator -> |
Operator wskaźnika do elementu członkowskiego. |
Elementy członkowskie danych publicznych
Nazwa/nazwisko | opis |
---|---|
CHeapPtrBase::m_pData |
Zmienna składowa danych wskaźnika. |
Uwagi
Ta klasa stanowi podstawę kilku inteligentnych klas wskaźników stert. Klasy pochodne, na przykład CHeapPtr
i CComHeapPtr
, dodają własne konstruktory i operatory. Zobacz te klasy, aby zapoznać się z przykładami implementacji.
Wymagania
Nagłówek: atlcore.h
CHeapPtrBase::AllocateBytes
Wywołaj tę metodę, aby przydzielić pamięć.
bool AllocateBytes(size_t nBytes) throw();
Parametry
nBytes
Liczba bajtów pamięci do przydzielenia.
Wartość zwracana
Zwraca wartość true, jeśli pamięć została pomyślnie przydzielona, w przeciwnym razie wartość false.
Uwagi
W kompilacjach debugowania wystąpi błąd asercji, jeśli CHeapPtrBase::m_pData
zmienna składowa aktualnie wskazuje istniejącą wartość, czyli nie jest równa null.
CHeapPtrBase::Attach
Wywołaj tę metodę, aby przejąć własność istniejącego wskaźnika.
void Attach(T* pData) throw();
Parametry
pData
Obiekt CHeapPtrBase
przejmie na własność ten wskaźnik.
Uwagi
CHeapPtrBase
Gdy obiekt przejmuje własność wskaźnika, automatycznie usunie wskaźnik i wszystkie przydzielone dane, gdy wyjdą poza zakres.
W kompilacjach debugowania wystąpi błąd asercji, jeśli CHeapPtrBase::m_pData
zmienna składowa aktualnie wskazuje istniejącą wartość, czyli nie jest równa null.
CHeapPtrBase::~CHeapPtrBase
Destruktora.
~CHeapPtrBase() throw();
Uwagi
Zwalnia wszystkie przydzielone zasoby.
CHeapPtrBase::Detach
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 CHeapPtrBase::m_pData
zmienną składową na wartość NULL i zwraca kopię wskaźnika.
CHeapPtrBase::Free
Wywołaj tę metodę, aby usunąć obiekt wskazywany przez CHeapPtrBase
obiekt .
void Free() throw();
Uwagi
Obiekt wskazywany przez CHeapPtrBase
obiekt jest zwalniany, a zmienna CHeapPtrBase::m_pData
składowa jest ustawiona na wartość NULL.
CHeapPtrBase::m_pData
Zmienna składowa danych wskaźnika.
T* m_pData;
Uwagi
Ta zmienna składowa przechowuje informacje o wskaźniku.
CHeapPtrBase::operator &
Operator &.
T** operator&() throw();
Wartość zwracana
Zwraca adres obiektu wskazywanego CHeapPtrBase
przez obiekt.
CHeapPtrBase::operator ->
Operator wskaźnika do elementu członkowskiego.
T* operator->() const throw();
Wartość zwracana
Zwraca wartość zmiennej składowej CHeapPtrBase::m_pData
.
Uwagi
Użyj tego operatora, aby wywołać metodę w klasie wskazywanej CHeapPtrBase
przez obiekt. W kompilacjach debugowania wystąpi błąd asercji, jeśli CHeapPtrBase
wskazuje wartość NULL.
CHeapPtrBase::operator T*
Operator rzutowania.
operator T*() const throw();
Uwagi
Zwraca wartość CHeapPtrBase::m_pData
.
CHeapPtrBase::ReallocateBytes
Wywołaj tę metodę, aby ponownie przydzielić pamięć.
bool ReallocateBytes(size_t nBytes) throw();
Parametry
nBytes
Nowa ilość pamięci do przydzielenia w bajtach.
Wartość zwracana
Zwraca wartość true, jeśli pamięć została pomyślnie przydzielona, w przeciwnym razie wartość false.
Zobacz też
Klasa CHeapPtr
Klasa CComHeapPtr
Omówienie klasy