Sdílet prostřednictvím


Třída CHeapPtrBase

Tato třída tvoří základ pro několik inteligentních tříd 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 <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase

Parametry

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

Allocator
Třída přidělení paměti, která se má použít. Ve výchozím nastavení se rutiny CRT používají k přidělování a uvolnění paměti.

Členové

Veřejné konstruktory

Název Popis
CHeapPtrBase::~CHeapPtrBase Destruktor.

Veřejné metody

Název Popis
CHeapPtrBase::AllocateBytes Voláním této metody přidělte paměť.
CHeapPtrBase::Attach Voláním této metody převezmete vlastnictví existujícího ukazatele.
CHeapPtrBase::Detach Voláním této metody uvolníte vlastnictví ukazatele.
CHeapPtrBase::Free Voláním této metody odstraníte objekt, na který CHeapPtrBaseodkazuje .
CHeapPtrBase::ReallocateBytes Voláním této metody relokate paměť.

Veřejné operátory

Název Popis
CHeapPtrBase::operator T* Operátor přetypování.
CHeapPtrBase::operator & Operátor &.
CHeapPtrBase::operator -> Operátor pointer-to-member.

Veřejné datové členy

Název Popis
CHeapPtrBase::m_pData Proměnná datového členu ukazatele.

Poznámky

Tato třída tvoří základ pro několik inteligentních tříd ukazatelů haldy. Odvozené třídy, například CHeapPtr a CComHeapPtr, přidat vlastní konstruktory a operátory. Příklady implementace najdete v těchto třídách.

Požadavky

Hlavička: atlcore.h

CHeapPtrBase::AllocateBytes

Voláním této metody přidělte paměť.

bool AllocateBytes(size_t nBytes) throw();

Parametry

nBytes
Počet bajtů paměti, které se mají přidělit.

Vrácená hodnota

Vrátí hodnotu true, pokud je paměť úspěšně přidělena, jinak false.

Poznámky

V sestaveních ladění dojde k selhání kontrolního výrazu, pokud proměnná člena CHeapPtrBase::m_pData aktuálně odkazuje na existující hodnotu. To znamená, že se nerovná hodnotě NULL.

CHeapPtrBase::Attach

Voláním této metody převezmete vlastnictví existujícího ukazatele.

void Attach(T* pData) throw();

Parametry

pData
Objekt CHeapPtrBase převezme vlastnictví tohoto ukazatele.

Poznámky

CHeapPtrBase Když objekt převezme vlastnictví ukazatele, automaticky odstraní ukazatel a všechna přidělená data, když přejde mimo rozsah.

V sestaveních ladění dojde k selhání kontrolního výrazu, pokud proměnná člena CHeapPtrBase::m_pData aktuálně odkazuje na existující hodnotu. To znamená, že se nerovná hodnotě NULL.

CHeapPtrBase::~CHeapPtrBase

Destruktor.

~CHeapPtrBase() throw();

Poznámky

Uvolní všechny přidělené prostředky.

CHeapPtrBase::Detach

Voláním této metody uvolníte vlastnictví ukazatele.

T* Detach() throw();

Vrácená hodnota

Vrátí kopii ukazatele.

Poznámky

Uvolní vlastnictví ukazatele, nastaví CHeapPtrBase::m_pData členovou proměnnou na hodnotu NULL a vrátí kopii ukazatele.

CHeapPtrBase::Free

Voláním této metody odstraníte objekt, na který CHeapPtrBaseodkazuje .

void Free() throw();

Poznámky

Objekt, na který odkazuje, CHeapPtrBase je uvolněn a CHeapPtrBase::m_pData členová proměnná je nastavena na hodnotu NULL.

CHeapPtrBase::m_pData

Proměnná datového členu ukazatele.

T* m_pData;

Poznámky

Tato proměnná člena obsahuje informace o ukazateli.

CHeapPtrBase::operator &

Operátor &.

T** operator&() throw();

Vrácená hodnota

Vrátí adresu objektu, na který CHeapPtrBase odkazuje objekt.

CHeapPtrBase::operator ->

Operátor pointer-to-member.

T* operator->() const throw();

Vrácená hodnota

Vrátí hodnotu CHeapPtrBase::m_pData členské proměnné.

Poznámky

Tento operátor slouží k volání metody ve třídě odkazované objektem CHeapPtrBase . V sestaveních ladění dojde k selhání kontrolního výrazu CHeapPtrBase , pokud odkazuje na hodnotu NULL.

CHeapPtrBase::operator T*

Operátor přetypování.

operator T*() const throw();

Poznámky

Vrací objekt CHeapPtrBase::m_pData.

CHeapPtrBase::ReallocateBytes

Voláním této metody relokate paměť.

bool ReallocateBytes(size_t nBytes) throw();

Parametry

nBytes
Nové množství paměti, které se má přidělit v bajtech.

Vrácená hodnota

Vrátí hodnotu true, pokud je paměť úspěšně přidělena, jinak false.

Viz také

Třída CHeapPtr
Třída CComHeapPtr
Přehled třídy