CString の評価

CString オブジェクトは増加できる動的オブジェクトですが、組み込みのプリミティブ型や単純なクラスのように動作します。 各 CString オブジェクトは一意の値を表します。 CString オブジェクトは文字列へのポインターではなく、実際の文字列として見なしてください。

1 つの CString オブジェクトを別のオブジェクトに割り当てることができます。 ただし、次の例のように、2 つの CString オブジェクトの 1 つを変更したとき、もう 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"   

この例では、同じ文字列を表しているため、2 つの CString オブジェクトは "等しい" と見なされます。 CString クラスは等値演算子 (==) をオーバーロードし、その ID (アドレス) ではなくその値 (コンテンツ) に基づいて 2 つの CString オブジェクトを比較します。

関連項目

文字列 (ATL/MFC)