Share via


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 指標數據成員變數。

備註

這個類別構成數個智慧堆積指標類別的基礎。 衍生類別,例如 和 CHeapPtrCComHeapPtr,加入自己的建構函式和運算符。 如需實作範例,請參閱這些類別。

需求

標頭: 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::m_pData

CHeapPtrBase::ReallocateBytes

呼叫此方法以重新配置記憶體。

bool ReallocateBytes(size_t nBytes) throw();

參數

nBytes
要配置的新記憶體數量,以位元組為單位。

傳回值

如果已成功配置記憶體,則傳回 true,否則傳回 false。

另請參閱

CHeapPtr 類別
CComHeapPtr 類別
類別概觀