Semantica di CString
Anche se gli oggetti CString sono oggetti dinamici che possono crescere, agiscono come tipi primitivi predefiniti e classi semplici. Ogni CString
oggetto rappresenta un valore univoco. CString
gli oggetti devono essere considerati come stringhe effettive anziché come puntatori alle stringhe.
È possibile assegnare un CString
oggetto a un altro. Tuttavia, quando si modifica uno dei due CString
oggetti , l'altro CString
oggetto non viene modificato, come illustrato nell'esempio seguente:
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"
Si noti che nell'esempio i due CString
oggetti sono considerati "uguali" perché rappresentano la stessa stringa di caratteri. La CString
classe esegue l'overload dell'operatore di uguaglianza (==
) per confrontare due CString
oggetti in base al relativo valore (contenuto) anziché alla relativa identità (indirizzo).