このクラスは、固定文字バッファーを含む文字列オブジェクトを表します。
構文
template<class StringType, int t_nChars>
class CFixedStringT : private CFixedStringMgr, public StringType
パラメーター
StringType
固定文字列オブジェクトの基底クラスとして使用されます。任意の CStringT ベースの型を指定できます。 たとえば、CString、CStringA、および CStringW です。
t_nChars
バッファーに含まれる文字数。
メンバー
パブリック コンストラクター
| 名前 | 説明 |
|---|---|
| CFixedStringT::CFixedStringT | 文字列オブジェクトのコンストラクター。 |
パブリック演算子
| 名前 | 説明 |
|---|---|
| CFixedStringT::operator = | 新しい値を CFixedStringT オブジェクトに代入します。 |
解説
このクラスは、CStringT に基づくカスタム文字列クラスの例です。 2 つのクラスは似ていますが、実装は異なります。 CFixedStringT と CStringT の主な違いは次のとおりです。
最初の文字バッファーは、オブジェクトの一部として割り当てられ、サイズは 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 オブジェクトを保持するために新しいストレージが割り当てられるためです。