Udostępnij za pośrednictwem


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 CHeapPtrBaseobiekt .
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 CHeapPtrBaseobiekt .

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