Freigeben über


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, CStringAund 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 eines CFixedStringT 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ür CStringT Objekte.

  • Der Speicher-Manager für CFixedStringT ist so angepasst, dass die Freigabe eines CStringData-Objekts zwischen zwei oder mehr CFixedStringT 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 CFixedStringTfinden 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.

Siehe auch

CStringT-Klasse
Hierarchiediagramm
ATL/MFC Shared Classes