次の方法で共有


CHeapPtr クラス

ヒープ ポインターを管理するためのスマート ポインター クラス。

重要

このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。

構文

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

パラメーター

T
ヒープに格納されるオブジェクトの種類。

Allocator
使用するメモリ割り当てクラス。

メンバー

パブリック コンストラクター

名前 説明
CHeapPtr::CHeapPtr コンストラクター。

パブリック メソッド

名前 説明
CHeapPtr::Allocate オブジェクトを格納するためにヒープでメモリを割り当てるには、このメソッドを呼び出します。
CHeapPtr::Reallocate ヒープのメモリを割り当て直すには、このメソッドを呼び出します。

パブリック演算子

名前 説明
CHeapPtr::operator = 代入演算子。

解説

CHeapPtrCHeapPtrBase から派生し、既定では (CCRTAllocator 内の) CRT ルーチンを使用してメモリの割り当てと解放を行います。 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 クラス
クラスの概要