Condividi tramite


Classe CFixedStringT

Questa classe rappresenta un oggetto stringa con un buffer di caratteri fisso.

Sintassi

template<class StringType, int t_nChars>
class CFixedStringT : private CFixedStringMgr, public StringType

Parametri

StringType
Usato come classe base per l'oggetto stringa fisso e può essere qualsiasi CStringTtipo basato su . Alcuni esempi includono CString, CStringAe CStringW.

t_nChars
Numero di caratteri archiviati nel buffer.

Membri

Costruttori pubblici

Nome Descrizione
CFixedStringT::CFixedStringT Costruttore per l'oggetto stringa.

Operatori pubblici

Nome Descrizione
CFixedStringT::operator = Assegna un nuovo valore a un CFixedStringT oggetto .

Osservazioni:

Questa classe è un esempio di una classe stringa personalizzata basata su CStringT. Anche se simili, le due classi differiscono nell'implementazione. Le principali differenze tra CFixedStringT e CStringT sono:

  • Il buffer di caratteri iniziale viene allocato come parte dell'oggetto e ha dimensioni t_nChars. Ciò consente all'oggetto CFixedString di occupare un blocco di memoria contiguo a scopo di prestazioni. Tuttavia, se il contenuto di un CFixedStringT oggetto aumenta oltre t_nChars, il buffer viene allocato in modo dinamico.

  • Il buffer dei caratteri per un CFixedStringT oggetto è sempre la stessa lunghezza ( t_nChars). Non esiste alcuna limitazione per le dimensioni del buffer per CStringT gli oggetti.

  • Il gestore della memoria per CFixedStringT è personalizzato in modo che la condivisione di un oggetto CStringData tra due o più CFixedStringT oggetti non sia consentita. CStringT gli oggetti non presentano questa limitazione.

Per altre informazioni sulla personalizzazione di e sulla gestione della CFixedStringT memoria per gli oggetti stringa in generale, vedere Gestione della memoria e CStringT.

Gerarchia di ereditarietà

IAtlStringMgr

StringType

CFixedStringMgr

CFixedStringT

Requisiti

Intestazione: cstringt.h

CFixedStringT::CFixedStringT

Costruisce un oggetto 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);

Parametri

pszSrc
Stringa con terminazione Null da copiare in questo CFixedStringT oggetto.

strSrc
Oggetto esistente CFixedStringT da copiare in questo CFixedStringT oggetto.

pStringMgr
Puntatore al gestore della memoria dell'oggetto CFixedStringT . Per altre informazioni sulla IAtlStringMgr gestione della memoria per CFixedStringT, vedere Gestione della memoria e CStringT.

Osservazioni:

Poiché i costruttori copiano i dati di input in una nuova risorsa di archiviazione allocata, è necessario tenere presente che possono verificarsi eccezioni di memoria. Alcuni di questi costruttori fungono da funzioni di conversione.

CFixedStringT::operator =

Reinizializza un oggetto esistente CFixedStringT con nuovi dati.

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);

Parametri

pszSrc
Stringa con terminazione Null da copiare in questo CFixedStringT oggetto.

strSrc
Oggetto esistente CFixedStringT da copiare in questo CFixedStringT oggetto.

Osservazioni:

È necessario tenere presente che le eccezioni di memoria possono verificarsi ogni volta che si usa l'operatore di assegnazione perché viene spesso allocata una nuova risorsa di archiviazione per contenere l'oggetto risultante CFixedStringT .

Vedi anche

Classe CStringT
Grafico della gerarchia
Classi condivise ATL/MFC