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