CFixedStringT-Klasse
Diese Klasse stellt ein Zeichenfolgenobjekt mit einem festen Zeichenpuffer dar.
Syntax
template<class StringType, int t_nChars>
class CFixedStringT : private CFixedStringMgr, public StringType
Parameter
StringType
Wird als Basisklasse für das feste Zeichenfolgenobjekt verwendet und kann ein beliebiger CStringT
-basierter Typ sein. Einige Beispiele sind : CString
, CStringA
und CStringW
.
t_nChars
Die Anzahl der im Puffer gespeicherten Zeichen.
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CFixedStringT::CFixedStringT | Der Konstruktor für das Zeichenfolgenobjekt. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
CFixedStringT::operator = | Weist einem CFixedStringT Objekt einen neuen Wert zu. |
Hinweise
Diese Klasse ist ein Beispiel für eine benutzerdefinierte Zeichenfolgenklasse basierend auf CStringT
. Obwohl die beiden Klassen ähnlich sind, unterscheiden sich die beiden Klassen in der Implementierung. Die wichtigsten Unterschiede zwischen CFixedStringT
und CStringT
sind:
Der anfängliche Zeichenpuffer wird als Teil des Objekts zugewiesen und weist die Größe t_nChars auf. Dadurch kann das
CFixedString
Objekt einen zusammenhängenden Speicherabschnitt für Leistungszwecke belegen. Wenn der Inhalt einesCFixedStringT
Objekts jedoch über t_nChars hinaus wächst, wird der Puffer dynamisch zugeordnet.Der Zeichenpuffer für ein
CFixedStringT
Objekt ist immer dieselbe Länge ( t_nChars). Es gibt keine Einschränkung der Puffergröße fürCStringT
Objekte.Der Speicher-Manager für
CFixedStringT
ist so angepasst, dass die Freigabe eines CStringData-Objekts zwischen zwei oder mehrCFixedStringT
Objekten nicht zulässig ist.CStringT
Objekte haben diese Einschränkung nicht.
Weitere Informationen zur Anpassung und CFixedStringT
Speicherverwaltung für Zeichenfolgenobjekte im Allgemeinen finden Sie unter Speicherverwaltung und CStringT.
Vererbungshierarchie
IAtlStringMgr
StringType
CFixedStringMgr
CFixedStringT
Anforderungen
Kopfzeile: cstringt.h
CFixedStringT::CFixedStringT
Erstellt ein CFixedStringT
-Objekt.
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);
Parameter
pszSrc
Eine mit Null beendete Zeichenfolge, die in dieses CFixedStringT
Objekt kopiert werden soll.
strSrc
Ein vorhandenes CFixedStringT
Objekt, das in dieses CFixedStringT
Objekt kopiert werden soll.
pStringMgr
Ein Zeiger auf den Speicher-Manager des CFixedStringT
Objekts. Weitere Informationen zur IAtlStringMgr
Speicherverwaltung und zur Speicherverwaltung CFixedStringT
finden Sie unter "Speicherverwaltung" und "CStringT".
Hinweise
Da die Konstruktoren die Eingabedaten in neuen zugewiesenen Speicher kopieren, sollten Sie beachten, dass Speichereinnahmen dazu führen können. Einige dieser Konstruktoren dienen als Konvertierungsfunktionen.
CFixedStringT::operator =
Initialisiert ein vorhandenes CFixedStringT
Objekt mit neuen Daten erneut.
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);
Parameter
pszSrc
Eine mit Null beendete Zeichenfolge, die in dieses CFixedStringT
Objekt kopiert werden soll.
strSrc
Ein vorhandenes CFixedStringT
Objekt, das in dieses CFixedStringT
Objekt kopiert werden soll.
Hinweise
Beachten Sie, dass Speicherausnahmen auftreten können, wenn Sie den Zuordnungsoperator verwenden, da häufig neuer Speicher für das resultierende CFixedStringT
Objekt zugeordnet ist.