Класс 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
объекта.