Поделиться через


Семантика 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 объектов на основе их значения (содержимого), а не удостоверения (адреса).

См. также

Строки (ATL/MFC)