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


Семантика CString

Даже если объекты CString динамические объекты, которые могут увеличиваться, они действуют как встроенные типы-примитивы и простые классы.Каждый объект CString представляющая уникальное значение.Объекты CString должны быть подуманы как строки фактических, а не как указатели на строки.

Можно присвоить один объект CString в другой.Однако при изменении одного из 2 объектов 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"   

Обратите внимание, что в примере 2 объекта CString "считаются равными", поскольку они представляют одну и ту же строку символов.Класс CString перегружает оператор равенства (==) для сравнения 2 объекта CString на основе их значения (содержимое), а не их идентификатора (адрес).

См. также

Другие ресурсы

String (ATL/MFC)