CHeapPtrBase
類別
這個類別構成數個智慧堆積指標類別的基礎。
重要
這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。
語法
template <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase
參數
T
要儲存在堆積上的物件類型。
Allocator
要使用的記憶體配置類別。 根據預設,CRT 例程會用來配置和釋放記憶體。
成員
公用建構函式
名稱 | 描述 |
---|---|
CHeapPtrBase::~CHeapPtrBase |
解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CHeapPtrBase::AllocateBytes |
呼叫此方法以配置記憶體。 |
CHeapPtrBase::Attach |
呼叫此方法以取得現有指標的擁有權。 |
CHeapPtrBase::Detach |
呼叫此方法以釋放指標的擁有權。 |
CHeapPtrBase::Free |
呼叫這個方法,以刪除 所 CHeapPtrBase 指向的物件。 |
CHeapPtrBase::ReallocateBytes |
呼叫此方法以重新配置記憶體。 |
公用運算子
名稱 | 描述 |
---|---|
CHeapPtrBase::operator T* |
轉換運算元。 |
CHeapPtrBase::operator & |
和運算子。 |
CHeapPtrBase::operator -> |
指針對成員運算符。 |
公用數據成員
名稱 | 描述 |
---|---|
CHeapPtrBase::m_pData |
指標數據成員變數。 |
備註
這個類別構成數個智慧堆積指標類別的基礎。 衍生類別,例如 和 CHeapPtr
CComHeapPtr
,加入自己的建構函式和運算符。 如需實作範例,請參閱這些類別。
需求
標頭: atlcore.h
CHeapPtrBase::AllocateBytes
呼叫此方法以配置記憶體。
bool AllocateBytes(size_t nBytes) throw();
參數
nBytes
要配置的記憶體位元組數目。
傳回值
如果已成功配置記憶體,則傳回 true,否則傳回 false。
備註
在偵錯組建中,如果 CHeapPtrBase::m_pData
成員變數目前指向現有的值,就會發生判斷提示失敗;也就是說,它不等於 NULL。
CHeapPtrBase::Attach
呼叫此方法以取得現有指標的擁有權。
void Attach(T* pData) throw();
參數
pData
物件 CHeapPtrBase
會取得這個指標的擁有權。
備註
CHeapPtrBase
當物件取得指標的擁有權時,它會在超出範圍時自動刪除指標和任何已配置的數據。
在偵錯組建中,如果 CHeapPtrBase::m_pData
成員變數目前指向現有的值,就會發生判斷提示失敗;也就是說,它不等於 NULL。
CHeapPtrBase::~CHeapPtrBase
解構函式。
~CHeapPtrBase() throw();
備註
釋放所有已配置的資源。
CHeapPtrBase::Detach
呼叫此方法以釋放指標的擁有權。
T* Detach() throw();
傳回值
傳回指標的複本。
備註
釋放指標的擁有權、將 CHeapPtrBase::m_pData
成員變數設定為 NULL,並傳回指標的複本。
CHeapPtrBase::Free
呼叫這個方法,以刪除 所 CHeapPtrBase
指向的物件。
void Free() throw();
備註
所 CHeapPtrBase
指向的物件會釋出,而 CHeapPtrBase::m_pData
成員變數會設定為 NULL。
CHeapPtrBase::m_pData
指標數據成員變數。
T* m_pData;
備註
這個成員變數會保存指標資訊。
CHeapPtrBase::operator &
和運算子。
T** operator&() throw();
傳回值
傳回物件所 CHeapPtrBase
指向之物件的位址。
CHeapPtrBase::operator ->
指針對成員運算符。
T* operator->() const throw();
傳回值
傳回成員變數的值 CHeapPtrBase::m_pData
。
備註
使用此運算符可呼叫 物件所指向 CHeapPtrBase
之類別中的方法。 在偵錯組建中,如果 CHeapPtrBase
指向 NULL,就會發生判斷提示失敗。
CHeapPtrBase::operator T*
轉換運算元。
operator T*() const throw();
備註
CHeapPtrBase::ReallocateBytes
呼叫此方法以重新配置記憶體。
bool ReallocateBytes(size_t nBytes) throw();
參數
nBytes
要配置的新記憶體數量,以位元組為單位。
傳回值
如果已成功配置記憶體,則傳回 true,否則傳回 false。