次の方法で共有


CFixedStringT クラス

このクラスは、固定文字バッファーを含む文字列オブジェクトを表します。

構文

template<class StringType, int t_nChars>
class CFixedStringT : private CFixedStringMgr, public StringType

パラメーター

StringType
固定文字列オブジェクトの基底クラスとして使用されます。任意の CStringT ベースの型を指定できます。 たとえば、CStringCStringA、および CStringW です。

t_nChars
バッファーに含まれる文字数。

メンバー

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

名前 説明
CFixedStringT::CFixedStringT 文字列オブジェクトのコンストラクター。

パブリック演算子

名前 説明
CFixedStringT::operator = 新しい値を CFixedStringT オブジェクトに代入します。

解説

このクラスは、CStringT に基づくカスタム文字列クラスの例です。 2 つのクラスは似ていますが、実装は異なります。 CFixedStringTCStringT の主な違いは次のとおりです。

  • 最初の文字バッファーは、オブジェクトの一部として割り当てられ、サイズは t_nChars です。 これにより、CFixedString オブジェクトが連続メモリ チャンクを占有でき、パフォーマンスが向上します。 ただし、CFixedStringT オブジェクトの内容が t_nChars を超えた場合、バッファーが動的に割り当てられます。

  • CFixedStringT オブジェクトの文字バッファーは常に同じ長さ (t_nChars) です。 CStringT オブジェクトのバッファー サイズに制限はありません。

  • CFixedStringT のメモリ マネージャーは、複数の CFixedStringT オブジェクト間で CStringData オブジェクトを共有できないようにカスタマイズされます。 CStringT オブジェクトには、この制限はありません。

CFixedStringT のカスタマイズおよび一般的な文字列オブジェクトのメモリ管理の詳細については、「CStringT を使用したメモリ管理」を参照してください。

継承階層

IAtlStringMgr

StringType

CFixedStringMgr

CFixedStringT

要件

ヘッダー: cstringt.h

CFixedStringT::CFixedStringT

CFixedStringT オブジェクトを構築します。

CFixedStringT() throw();
explicit CFixedStringT(IAtlStringMgr* pStringMgr) throw();
CFixedStringT(const CFixedStringT<StringType, t_nChars>& strSrc);
CFixedStringT(const StringType& strSrc);
CFixedStringT(const StringType::XCHAR* pszSrc);
explicit CFixedStringT(const StringType::YCHAR* pszSrc);
explicit CFixedStringT(const unsigned char* pszSrc);

パラメーター

pszSrc
この CFixedStringT オブジェクトにコピーする、null で終了している文字列。

strSrc
この CFixedStringT オブジェクトにコピーする既存の CFixedStringT オブジェクト。

pStringMgr
CFixedStringT オブジェクトのメモリ マネージャーへのポインター。 IAtlStringMgr と、CFixedStringT のメモリ管理の詳細については、「CStringT を使用したメモリ管理」を参照してください。

解説

コンストラクターによって入力データが割り当てられた新しいストレージにコピーされるので、メモリ例外が発生する可能性があることに注意してください。 これらのコンストラクターの一部は、変換関数として機能します。

CFixedStringT::operator =

既存の CFixedStringT オブジェクトを新しいデータで再初期化します。

CFixedStringT<StringType, t_nChars>& operator=(
    const CFixedStringT<StringType, t_nChars>& strSrc);
CFixedStringT<StringType, t_nChars>& operator=(const char* pszSrc);
CFixedStringT<StringType, t_nChars>& operator=(const wchar_t* pszSrc);
CFixedStringT<StringType, t_nChars>& operator=(const unsigned char* pszSrc);
CFixedStringT<StringType, t_nChars>& operator=(const StringType& strSrc);

パラメーター

pszSrc
この CFixedStringT オブジェクトにコピーする、null で終了している文字列。

strSrc
この CFixedStringT オブジェクトにコピーする既存の CFixedStringT

解説

代入演算子を使用するたびに、メモリの例外が発生する可能性があることに注意してください。これは、多くの場合、結果として得られる CFixedStringT オブジェクトを保持するために新しいストレージが割り当てられるためです。

関連項目

CStringT クラス
階層図
ATL/MFC 共有クラス