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 |
ポインター データ メンバー変数。 |
解説
このクラスは、いくつかのスマート ヒープ ポインター クラスの基礎を形成します。 派生クラス (CHeapPtr
や CComHeapPtr
など) では、独自のコンストラクターと演算子を追加します。 実装例については、これらのクラスを参照してください。
要件
ヘッダー: 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 が返されます。