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。
繼承階層架構
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);