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
CHeapPtr
je 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
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 CHeapPtr
hodnotu .
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);