CString の評価
CString のオブジェクトが拡大できる動的オブジェクトである場合も、これらは組み込みのプリミティブ型、および単純なクラスと同様に動作します。CString の各オブジェクトは、一意の値を表します。文字列へのCString のオブジェクトは、に関するように、実際の文字列ポインターではなくしてください。
別の CString の 1 種類のオブジェクトを代入できます。ただし、CString の 2 種類のオブジェクトの 1 つを変更すると、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 の 2 種類のオブジェクトが等しい「例」見なされることに注意してください。CString のクラスは、ID (アドレスではなく) 値 (内容) に基づいて CString の 2 種類のオブジェクトを比較するには、等値演算子 (==) をオーバーロードします。