Compartir a través de


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 objeto CFixedStringT 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 objetos CStringT.

  • 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 objetos CFixedStringT. Los objetos CStringT 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