共用方式為


CHeapPtr 類別

用於管理堆積指標的智慧型指標類別。

重要

這個類別及其成員不能用於在Windows 執行階段中執行的應用程式。

語法

template<typename T, class Allocator=CCRTAllocator>
class CHeapPtr : public CHeapPtrBase<T, Allocator>

參數

T
要儲存在堆積上的物件類型。

分配器
要使用的記憶體配置類別。

成員

公用建構函式

名稱 描述
CHeapPtr::CHeapPtr 建構函式。

公用方法

名稱 描述
CHeapPtr::Allocate 呼叫此方法以配置堆積上的記憶體來儲存物件。
CHeapPtr::Reallocate 呼叫此方法以重新配置堆積上的記憶體。

公用運算子

名稱 描述
CHeapPtr::operator = 指派運算子。

備註

CHeapPtr 衍生自 CHeapPtrBase ,根據預設,會使用 CRT 常式 (在 CCRTAllocator 中) 來配置和釋放記憶體。 類別 CHeapPtrList 可用來建構堆積指標清單。 另 請參閱使用 COM 記憶體配置常式的 CComHeapPtr

繼承階層架構

CHeapPtrBase

CHeapPtr

需求

標頭: atlcore.h

CHeapPtr::Allocate

呼叫此方法以配置堆積上的記憶體來儲存物件。

bool Allocate(size_t nElements = 1) throw();

參數

nElements
用來計算要配置的記憶體數量的專案數目。 預設值是 1。

傳回值

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

備註

配置器常式可用來保留堆積上足夠的記憶體,以儲存 建構函式中所定義類型的 nElement 物件。

範例

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);

CHeapPtr::CHeapPtr

建構函式。

CHeapPtr() throw();
explicit CHeapPtr(T* p) throw();
CHeapPtr(CHeapPtr<T, Allocator>& p) throw();

參數

p
現有的堆積指標或 CHeapPtr

備註

您可以選擇性地使用現有的指標或 CHeapPtr 物件來建立堆積指標。 如果是,新 CHeapPtr 物件會負責管理新的指標和資源。

範例

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Create a new CHeapPtr from the first
CHeapPtr <int> myHP2(myHP);   

CHeapPtr::operator =

指派運算子。

CHeapPtr<T, Allocator>& operator=(
    CHeapPtr<T, Allocator>& p) throw();

參數

p
現有的 CHeapPtr 物件。

傳回值

傳回更新 CHeapPtr 之 的參考。

範例

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
// Create a second heap pointer
// and assign it to the first pointer.
CHeapPtr <int> myHP2;
myHP2 = myHP;   

CHeapPtr::Reallocate

呼叫此方法以重新配置堆積上的記憶體。

bool Reallocate(size_t nElements) throw();

參數

nElements
用來計算要配置的記憶體數量的新專案數目。

傳回值

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

範例

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
// Resize the allocated memory for 20 integers
myHP.Reallocate(20);   

另請參閱

CHeapPtrBase 類別
CCRTAllocator 類別
類別概觀