Udostępnij za pośrednictwem


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

CHeapPtrBase

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);   

Zobacz też

Klasa CHeapPtrBase
Klasa CCRTAllocator
Omówienie klasy