CHeapPtrBase Class

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

這個類別會構成數個堆積的智慧型指標類別的基礎。

System_CAPS_ICON_important.jpg 重要

這個類別及其成員不能在 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 iI 運算子。
-> CHeapPtrBase::operator成員指標運算子。

公用資料成員

名稱說明
CHeapPtrBase::m_pData指標的資料成員變數。

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

標頭︰ atlcore.h

呼叫這個方法來配置記憶體。

bool AllocateBytes(size_t nBytes) throw();

參數

nBytes
記憶體配置的位元組數目。

傳回值

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

備註

在偵錯組建中,如果,就會發生判斷提示失敗CHeapPtrBase::m_pData成員變數現在指向現有的值; 也就是說,不等於 NULL。

呼叫這個方法來取得現有指標的擁有權。

void Attach(T* pData) throw();

參數

pData
CHeapPtrBase物件會取得這個指標的擁有權。

備註

CHeapPtrBase物件會取得指標的擁有權,則它會自動刪除指標和配置的資料超出範圍時。

在偵錯組建中,如果,就會發生判斷提示失敗CHeapPtrBase::m_pData成員變數現在指向現有的值; 也就是說,不等於 NULL。

解構函式。

~CHeapPtrBase() throw();

備註

釋放所有配置的資源。

呼叫此方法,以釋放指標的擁有權。

T* Detach() throw();

傳回值

傳回指標的複本。

備註

釋放指標的擁有權、 設定CHeapPtrBase::m_pData成員變數為 NULL,並傳回指標的複本。

呼叫此方法以刪除所指向的物件CHeapPtrBase

void Free() throw();

備註

指向物件CHeapPtrBase釋出,而CHeapPtrBase::m_pData成員變數設為 NULL。

指標的資料成員變數。

T* m_pData;

備註

這個成員變數會保留指標資訊。

I 運算子。

T** operator&() throw();

傳回值

傳回所指物件的位址CHeapPtrBase物件。

成員指標運算子。

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

傳回值

傳回的值CHeapPtrBase::m_pData成員變數。

備註

使用這個運算子所指的類別中呼叫的方法CHeapPtrBase物件。 在偵錯組建中,如果,就會發生判斷提示失敗CHeapPtrBase點為 NULL。

轉型運算子。

operator T*() const throw();

備註

傳回CHeapPtrBase::m_pData

呼叫這個方法來重新配置記憶體。

bool ReallocateBytes(size_t nBytes) throw();

參數

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

傳回值

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

CHeapPtr 類別
CComHeapPtr 類別
類別概觀

顯示: