Поделиться через


Класс 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 памяти настраивается таким образом, чтобы общий доступ к объекту CStringData между двумя или более CFixedStringT объектами не допускается. 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
Строка, завершающаяся значением NULL, копируется в этот CFixedStringT объект.

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
Строка, завершающаяся значением NULL, копируется в этот CFixedStringT объект.

strSrc
Существующее CFixedStringT копирование в этот CFixedStringT объект.

Замечания

Следует учитывать, что исключения памяти могут возникать всякий раз, когда используется оператор назначения, так как новое хранилище часто выделяется для хранения результирующего CFixedStringT объекта.

См. также

Класс CStringT
Диаграмма иерархии
Общие классы ATL/MFC