TNB Library
公開メンバ関数 | 全メンバ一覧
CArrayPtrHandleT< TYP > クラステンプレート

ポインタ型ハンドルテンプレート [詳解]

#include <TnbPointerHandle.h>

+ CArrayPtrHandleT< TYP > の継承関係図

公開メンバ関数

 CArrayPtrHandleT (const CArrayPtrHandleT &t)
 コピーコンストラクタ. [詳解]
 
 CArrayPtrHandleT (TYP *P)
 代入コンストラクタ. [詳解]
 
 CArrayPtrHandleT (void)
 コンストラクタ. [詳解]
 
int GetReferCount (void) const
 [取得] 参照数取得. [詳解]
 
bool IsNull (void) const
 [確認] NULLチェック [詳解]
 
void Null (void)
 [設定] 開放. [詳解]
 
 operator const TYP * (void) const
 [取得] TYP取得. [詳解]
 
 operator TYP * (void)
 [取得] TYP取得. [詳解]
 
bool operator!= (TYP * t) const
 [比較] TYP比較. [詳解]
 
TYP * operator-> (void)
 [取得] TYP取得. [詳解]
 
const TYP * operator-> (void) const
 [取得] TYP取得. [詳解]
 
bool operator== (TYP * t) const
 [比較] TYP比較. [詳解]
 
TYP & operator[] (int ind)
 [取得] TYPポインタ取得. [詳解]
 
const TYP & operator[] (int ind) const
 [取得] TYPポインタ取得. [詳解]
 
TYP * * ReferP (void)
 [取得] TYPのポインタ取得. [詳解]
 
TYP * const * ReferP (void) const
 [取得] TYPのポインタ取得. [詳解]
 
int SetReferCount (int iCount)
 [設定] 参照数設定 [詳解]
 

詳解

template<typename TYP>
class TNB::CArrayPtrHandleT< TYP >

ポインタ型ハンドルテンプレート

この型に new で確保したポインタを渡しておくと、
「領域」を参照する本クラスががなくなり次第、
自動的に開放します。

「Javaの参照型」や「C++/CLRのハンドル型」と
同じ使い方が可能になります。

コピーオペレータを持っているので、関数の戻り値などに
も使用できます。

@par
    <table><tr><td><pre>

    CArrayPtrHandleT<BYTE> foo(DWORD dwSize)
    {
        CArrayPtrHandleT<BYTE> hpBuff = new BYTE[dwSize];
        DWORD dwReadBytes = 0;
        BOOL boRc = ::ReadFile(m_hFile,hpBuff,dwSize,&dwReadBytes,NULL);        
        if ( ! boRc ){ hpBuff.Empty(); }
        return hpBuff;
    }
    </pre></td></tr></table>
覚え書き
推奨prefixは「hp」です。
引数
TYP保持する型
必要ファイル
TnbPointerHandle.h
日付
06/09/29 別クラスとして定義。

TnbPointerHandle.h436 行目に定義があります。

構築子と解体子

◆ CArrayPtrHandleT() [1/3]

CArrayPtrHandleT ( void  )

コンストラクタ.

TYPポインタを管理していないインスタンスが作成されます。

TnbPointerHandle.h446 行目に定義があります。

◆ CArrayPtrHandleT() [2/3]

CArrayPtrHandleT ( TYP *  P)

代入コンストラクタ.

指定されたTYPポインタを管理するインスタンスが作成されます。 この時点では、TYPポインタは新インスタンスだけが参照しています。

引数
Pnew で確保したTYPポインタ。

TnbPointerHandle.h456 行目に定義があります。

◆ CArrayPtrHandleT() [3/3]

CArrayPtrHandleT ( const CArrayPtrHandleT< TYP > &  t)

コピーコンストラクタ.

コピー元にTYPポインタがある場合、新規作成の本インスタンスでも、 そこを参照するようになります。

引数
t同じ型のインスタンス。

TnbPointerHandle.h466 行目に定義があります。

関数詳解

◆ GetReferCount()

int GetReferCount ( void  ) const
inherited

[取得] 参照数取得.

TYPポインタが参照されている数を知ることが出来ます。

覚え書き
通常使う必要は有りません。
戻り値
参照数

TnbPointerHandle.h221 行目に定義があります。

◆ IsNull()

bool IsNull ( void  ) const
inherited

[確認] NULLチェック

戻り値
trueTYPポインタ無し
falseTYPポインタ有り

TnbPointerHandle.h197 行目に定義があります。

◆ Null()

void Null ( void  )
inherited

[設定] 開放.

本インスタンスが管理しているTYPを開放します。

覚え書き
operator=(NUL) と同じ動作です。
TYPが他からも使われていたら、参照を一つ減らすだけです。

TnbPointerHandle.h229 行目に定義があります。

◆ operator const TYP *()

operator const TYP * ( void  ) const
inherited

[取得] TYP取得.

管理しているTYPを返します

戻り値
TYP の値

TnbPointerHandle.h262 行目に定義があります。

◆ operator TYP *()

operator TYP * ( void  )
inherited

[取得] TYP取得.

管理しているTYPを返します

戻り値
TYP の値

TnbPointerHandle.h255 行目に定義があります。

◆ operator!=()

bool operator!= ( TYP *  t) const
inherited

[比較] TYP比較.

保持している TYPと比較します。

引数
t比較対照
戻り値
false同じ
true異なる

TnbPointerHandle.h294 行目に定義があります。

◆ operator->() [1/2]

TYP * operator-> ( void  )
inherited

[取得] TYP取得.

管理しているTYPを返します

戻り値
TYP の値

TnbPointerHandle.h269 行目に定義があります。

◆ operator->() [2/2]

const TYP * operator-> ( void  ) const
inherited

[取得] TYP取得.

管理しているTYPを返します

戻り値
TYP の値

TnbPointerHandle.h276 行目に定義があります。

◆ operator==()

bool operator== ( TYP *  t) const
inherited

[比較] TYP比較.

保持している TYPと比較します。

引数
t比較対照
戻り値
true同じ
false異なる

TnbPointerHandle.h285 行目に定義があります。

◆ operator[]() [1/2]

TYP & operator[] ( int  ind)

[取得] TYPポインタ取得.

管理しているTYPポインタを返します

引数
indインデックス。
戻り値
NUL管理していない
NUL以外TYPポインタ

TnbPointerHandle.h477 行目に定義があります。

◆ operator[]() [2/2]

const TYP & operator[] ( int  ind) const

[取得] TYPポインタ取得.

管理しているTYPポインタを返します

引数
indインデックス。
戻り値
NUL管理していない
NUL以外TYPポインタ

TnbPointerHandle.h486 行目に定義があります。

◆ ReferP() [1/2]

TYP * * ReferP ( void  )
inherited

[取得] TYPのポインタ取得.

戻り値
TYPのポインタ

TnbPointerHandle.h242 行目に定義があります。

◆ ReferP() [2/2]

TYP * const * ReferP ( void  ) const
inherited

[取得] TYPのポインタ取得.

戻り値
TYPのポインタ

TnbPointerHandle.h248 行目に定義があります。

◆ SetReferCount()

int SetReferCount ( int  iCount)
inherited

[設定] 参照数設定

覚え書き
通常使う必要は有りません。例外として、0以下の参照数は、参照を増やすことが 出来ない様になっているため、意図的に使用することが出来ます。
引数
iCount設定する参照数
戻り値
設定前の参照数

TnbPointerHandle.h209 行目に定義があります。