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