次の方法で共有


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 クラス
クラスの概要