Семантика CString
Несмотря на то, что объекты CString являются динамическими объектами, которые могут расти, они действуют как встроенные примитивные типы и простые классы. Каждый CString
объект представляет уникальное значение. CString
Объекты должны рассматриваться как фактические строки, а не как указатели на строки.
Можно назначить один CString
объект другому. Однако при изменении одного из двух CString
объектов другой CString
объект не изменяется, как показано в следующем примере:
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"
Обратите внимание, что два CString
объекта считаются равными, так как они представляют одну и ту же символьную строку. Класс CString
перегружает оператор равенства (==
) для сравнения двух CString
объектов на основе их значения (содержимого), а не удостоверения (адреса).