Clase CFixedStringT
Esta clase representa un objeto de cadena con un búfer de caracteres fijo.
Sintaxis
template<class StringType, int t_nChars>
class CFixedStringT : private CFixedStringMgr, public StringType
Parámetros
StringType
Se usa como clase base para el objeto de cadena fijo y puede ser cualquier tipo basado en CStringT
. Algunos ejemplos son CString
, CStringA
y CStringW
.
t_nChars
Número de caracteres almacenados en el búfer.
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CFixedStringT::CFixedStringT | Constructor del objeto de cadena. |
Operadores públicos
Nombre | Descripción |
---|---|
CFixedStringT::operator = | Asigna un nuevo valor a un objeto CFixedStringT . |
Comentarios
Esta clase es un ejemplo de una clase de cadena personalizada basada en CStringT
. Aunque es similar, las dos clases difieren en la implementación. Las principales diferencias entre CFixedStringT
y CStringT
son:
El búfer de caracteres inicial se asigna como parte del objeto y tiene el tamaño t_nChars. Esto permite que el objeto
CFixedString
ocupe un fragmento de memoria contiguo con fines de rendimiento. Sin embargo, si el contenido de un objetoCFixedStringT
crece más allá de t_nChars, el búfer se asigna dinámicamente.El búfer de caracteres de un objeto
CFixedStringT
siempre tiene la misma longitud (t_nChars). No hay ninguna limitación en el tamaño del búfer para los objetosCStringT
.El administrador de memoria de
CFixedStringT
se personaliza de forma que no se permita el uso compartido de un objeto CStringData entre dos o más objetosCFixedStringT
. Los objetosCStringT
no tienen esta limitación.
Para obtener más información sobre la personalización de CFixedStringT
y la administración de memoria para objetos de cadena en general, consulte Administración de memoria y CStringT.
Jerarquía de herencia
IAtlStringMgr
StringType
CFixedStringMgr
CFixedStringT
Requisitos
Encabezado: cstringt.h
CFixedStringT::CFixedStringT
Construye un objeto 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);
Parámetros
pszSrc
Cadena terminada en NULL que se va a copiar en este objeto CFixedStringT
.
strSrc
Objeto CFixedStringT
existente que se va a copiar en este objeto CFixedStringT
.
pStringMgr
Un puntero al administrador de memoria del objeto CFixedStringT
. Para más información sobre IAtlStringMgr
y la administración de memoria de CFixedStringT
, consulte Administración de memoria y CStringT.
Comentarios
Dado que los constructores copian los datos de entrada en un nuevo almacenamiento asignado, debe tener en cuenta que se pueden producir excepciones de memoria. Algunos de estos constructores actúan como funciones de conversión.
CFixedStringT::operator =
Reinicializa un objeto CFixedStringT
existente con nuevos datos.
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);
Parámetros
pszSrc
Cadena terminada en NULL que se va a copiar en este objeto CFixedStringT
.
strSrc
Elemento CFixedStringT
existente que se va a copiar en este objeto CFixedStringT
.
Comentarios
Debe tener en cuenta que las excepciones de memoria pueden producirse siempre que use el operador de asignación porque a menudo se asigna nuevo almacenamiento para contener el objeto CFixedStringT
resultante.
Consulte también
CStringT (clase)
Gráfico de jerarquías
Clases compartidas de ATL y MFC