Sdílet prostřednictvím


CHeapPtr – třída

Třída inteligentního ukazatele pro správu ukazatelů haldy.

Důležité

Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

Syntaxe

template<typename T, class Allocator=CCRTAllocator>
class CHeapPtr : public CHeapPtrBase<T, Allocator>

Parametry

T
Typ objektu, který má být uložen v haldě.

Alokátor
Třída přidělení paměti, která se má použít.

Členové

Veřejné konstruktory

Název Popis
CHeapPtr::CHeapPtr Konstruktor

Veřejné metody

Název Popis
CHeapPtr::Přidělení Voláním této metody přidělte paměť haldy pro ukládání objektů.
CHeapPtr::Reallocate Voláním této metody relokujte paměť na haldě.

Veřejné operátory

Název Popis
CHeapPtr::operator = Operátor přiřazení.

Poznámky

CHeapPtrje odvozen z CHeapPtrBase a ve výchozím nastavení používá rutiny CRT (v CCRTAllocator) k přidělení a uvolnění paměti. Třída CHeapPtrList lze použít k vytvoření seznamu ukazatelů haldy. Viz také CComHeapPtr, který používá rutiny přidělení paměti MODELU COM.

Hierarchie dědičnosti

CHeapPtrBase

CHeapPtr

Požadavky

Hlavička: atlcore.h

CHeapPtr::Přidělení

Voláním této metody přidělte paměť haldy pro ukládání objektů.

bool Allocate(size_t nElements = 1) throw();

Parametry

nElements
Počet prvků použitých k výpočtu množství paměti k přidělení. Výchozí hodnota je 1.

Návratová hodnota

Vrátí hodnotu true, pokud byla paměť úspěšně přidělena, nepravda při selhání.

Poznámky

Rutiny alokátoru se používají k rezervaci dostatek paměti na haldě k uložení nElement objektů typu definovaného v konstruktoru.

Příklad

// 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
Existující ukazatel haldy nebo CHeapPtr.

Poznámky

Ukazatel haldy lze volitelně vytvořit pomocí existujícího ukazatele nebo objektu CHeapPtr . Pokud ano, nový CHeapPtr objekt přebírá odpovědnost za správu nového ukazatele a prostředků.

Příklad

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Create a new CHeapPtr from the first
CHeapPtr <int> myHP2(myHP);   

CHeapPtr::operator =

Operátor přiřazení.

CHeapPtr<T, Allocator>& operator=(
    CHeapPtr<T, Allocator>& p) throw();

Parametry

p
Existující objekt CHeapPtr.

Návratová hodnota

Vrátí odkaz na aktualizovanou CHeapPtrhodnotu .

Příklad

// 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

Voláním této metody relokujte paměť na haldě.

bool Reallocate(size_t nElements) throw();

Parametry

nElements
Nový počet prvků použitých k výpočtu množství paměti k přidělení.

Návratová hodnota

Vrátí hodnotu true, pokud byla paměť úspěšně přidělena, nepravda při selhání.

Příklad

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

Viz také

CHeapPtrBase – třída
CCRTAllocator – třída
Přehled třídy