Klasa CHeapPtr
Inteligentna klasa wskaźnika do zarządzania wskaźnikami 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<typename T, class Allocator=CCRTAllocator>
class CHeapPtr : public CHeapPtrBase<T, Allocator>
Parametry
T
Typ obiektu, który ma być przechowywany na stercie.
Programu przydzielania
Klasa alokacji pamięci do użycia.
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CHeapPtr::CHeapPtr | Konstruktor. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CHeapPtr::Przydziel | Wywołaj tę metodę, aby przydzielić pamięć na stercie do przechowywania obiektów. |
CHeapPtr::Reallocate | Wywołaj tę metodę, aby ponownie przydzielić pamięć na stercie. |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
CHeapPtr::operator = | Operator przypisania. |
Uwagi
CHeapPtr
pochodzi z CHeapPtrBase i domyślnie używa procedur CRT (w ccRTAllocator) do przydzielania i zwalniania pamięci. Klasa CHeapPtrList może służyć do konstruowania listy wskaźników sterty. Zobacz również CComHeapPtr, który używa procedur alokacji pamięci COM.
Hierarchia dziedziczenia
CHeapPtr
Wymagania
Nagłówek: atlcore.h
CHeapPtr::Przydziel
Wywołaj tę metodę, aby przydzielić pamięć na stercie do przechowywania obiektów.
bool Allocate(size_t nElements = 1) throw();
Parametry
nElements
Liczba elementów używanych do obliczenia ilości pamięci do przydzielenia. Domyślna wartość wynosi 1.
Wartość zwracana
Zwraca wartość true, jeśli pamięć została pomyślnie przydzielona, wartość false w przypadku awarii.
Uwagi
Procedury alokatora służą do rezerwowania wystarczającej ilości pamięci na stercie do przechowywania obiektów nElement typu zdefiniowanego w konstruktorze.
Przykład
// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
CHeapPtr::CHeapPtr
Konstruktor.
CHeapPtr() throw();
explicit CHeapPtr(T* p) throw();
CHeapPtr(CHeapPtr<T, Allocator>& p) throw();
Parametry
p
Istniejący wskaźnik stertowy lub CHeapPtr
.
Uwagi
Wskaźnik sterty można opcjonalnie utworzyć przy użyciu istniejącego CHeapPtr
wskaźnika lub obiektu. Jeśli tak, nowy CHeapPtr
obiekt przejmuje odpowiedzialność za zarządzanie nowym wskaźnikiem i zasobami.
Przykład
// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Create a new CHeapPtr from the first
CHeapPtr <int> myHP2(myHP);
CHeapPtr::operator =
Operator przypisania.
CHeapPtr<T, Allocator>& operator=(
CHeapPtr<T, Allocator>& p) throw();
Parametry
p
Istniejący CHeapPtr
obiekt.
Wartość zwracana
Zwraca odwołanie do zaktualizowanego CHeapPtr
.
Przykład
// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
// Create a second heap pointer
// and assign it to the first pointer.
CHeapPtr <int> myHP2;
myHP2 = myHP;
CHeapPtr::Reallocate
Wywołaj tę metodę, aby ponownie przydzielić pamięć na stercie.
bool Reallocate(size_t nElements) throw();
Parametry
nElements
Nowa liczba elementów używanych do obliczenia ilości pamięci do przydzielenia.
Wartość zwracana
Zwraca wartość true, jeśli pamięć została pomyślnie przydzielona, wartość false w przypadku awarii.
Przykład
// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
// Resize the allocated memory for 20 integers
myHP.Reallocate(20);