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
オブジェクトを比較します。