Sémantique CString
Même si les objets CString sont des objets dynamiques qui peuvent croître, ils agissent comme des types primitifs intégrés et des classes simples. Chaque CString
objet représente une valeur unique. CString
les objets doivent être considérés comme les chaînes réelles plutôt que comme des pointeurs vers des chaînes.
Vous pouvez affecter un objet à un CString
autre. Toutefois, lorsque vous modifiez l’un des deux CString
objets, l’autre CString
objet n’est pas modifié, comme illustré par l’exemple suivant :
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"
Notez dans l’exemple que les deux CString
objets sont considérés comme « égaux », car ils représentent la même chaîne de caractères. La CString
classe surcharge l’opérateur d’égalité (==
) pour comparer deux CString
objets en fonction de leur valeur (contenu) plutôt que de leur identité (adresse).