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)