Semántica de CString
Aunque los objetos CString son objetos dinámicos que pueden crecer, actúan como tipos primitivos integrados y clases simples. Cada objeto CString
representa un valor único. Los objetos CString
se deben considerar como cadenas reales en lugar de como punteros a cadenas.
Puede asignar un objeto CString
a otro. Sin embargo, al modificar uno de los dos objetos CString
, el otro objeto CString
no se modifica, como se muestra en el ejemplo siguiente:
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"
Observe en el ejemplo que los dos objetos CString
se consideran "iguales" porque representan la misma cadena de caracteres. La clase CString
sobrecarga el operador de igualdad (==
) para comparar dos objetos CString
en función de su valor (contenido) en lugar de su identidad (dirección).