CString-Semantik

Obwohl CString-Objekte dynamische Objekte sind, die wachsen können, funktionieren sie wie integrierte Grundtypen und einfache Klassen. Jedes CString Objekt stellt einen eindeutigen Wert dar. CString Objekte sollten als tatsächliche Zeichenfolgen und nicht als Zeiger auf Zeichenfolgen betrachtet werden.

Sie können ein CString Objekt einem anderen zuweisen. Wenn Sie jedoch eines der beiden CString Objekte ändern, wird das andere CString Objekt nicht geändert, wie im folgenden Beispiel gezeigt:

CString s1, s2;
s1 = s2 = _T("hi there");

ASSERT(s1 == s2); // they are equal

s1.MakeUpper();  // Does not modify s2
ASSERT(s2[0] == _T('h')); // s2 is still "hi there"   

Beachten Sie im Beispiel, dass die beiden CString Objekte als "gleich" betrachtet werden, da sie dieselbe Zeichenfolge darstellen. Die CString Klasse überlastet den Gleichheitsoperator (==), um zwei CString Objekte basierend auf ihrem Wert (Inhalt) und nicht ihrer Identität (Adresse) zu vergleichen.

Siehe auch

Zeichenfolgen (ATL/MFC)