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
对象。