CFixedStringT 类
此类表示具有固定字符缓冲区的字符串对象。
语法
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
的自定义字符串类的示例。 虽然类似,但两个类在实现中有所不同。 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
对象。