CFixedStringT 类

此类表示具有固定字符缓冲区的字符串对象。

语法

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

参数

StringType
用作固定字符串对象的基类,可以是任何基于 CStringT 类型的基类。 一些示例包括CStringCStringACStringW

t_nChars
存储缓冲区中的字符数。

成员

公共构造函数

名称 描述
CFixedStringT::CFixedStringT 字符串对象的构造函数。

公共运算符

“属性” 描述
CFixedStringT::operator = CFixedStringT 对象分配新值。

备注

此类是基于 CStringT 的自定义字符串类的示例。 虽然类似,但两个类在实现中有所不同。 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 对象的内存管理器的指针。 有关 IAtlStringMgrCFixedStringT 的内存管理的更多信息,请参阅内存管理和 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 共享类