Udostępnij za pośrednictwem


CString — semantyka

Mimo że obiekty CString są obiektami dynamicznymi, które mogą rosnąć, działają jak wbudowane typy pierwotne i proste klasy. Każdy CString obiekt reprezentuje unikatową wartość. CString obiekty powinny być uważane za rzeczywiste ciągi, a nie jako wskaźniki do ciągów.

Można przypisać jeden CString obiekt do innego. Jednak podczas modyfikowania jednego z dwóch CString obiektów drugi CString obiekt nie jest modyfikowany, jak pokazano w poniższym przykładzie:

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"   

Zwróć uwagę, że w przykładzie dwa CString obiekty są traktowane jako "równe", ponieważ reprezentują one ten sam ciąg znaków. Klasa CString przeciąża operatora równości (==), aby porównać dwa CString obiekty na podstawie ich wartości (zawartości), a nie ich tożsamości (adresu).

Zobacz też

Ciągi (ATL/MFC)