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ý CHeapPtrBase odkazuje . |
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ý CHeapPtrBase
odkazuje .
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.