Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот класс представляет строковый объект с фиксированным буфером символов.
Синтаксис
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 объекта.