CString – sémantika
I když jsou objekty CString dynamické objekty, které mohou růst, chovají se jako předdefinované primitivní typy a jednoduché třídy. Každý CString
objekt představuje jedinečnou hodnotu. CString
objekty by měly být považovány za skutečné řetězce, nikoli jako ukazatele na řetězce.
Jeden objekt můžete přiřadit CString
k druhému. Když však upravíte jeden ze dvou CString
objektů, druhý CString
objekt se nezmění, jak je znázorněno v následujícím příkladu:
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"
Všimněte si v příkladu, že dva CString
objekty jsou považovány za "stejné", protože představují stejný znak řetězec. Třída CString
přetěžuje operátor rovnosti (==
) k porovnání dvou CString
objektů na základě jejich hodnoty (obsahu) místo jejich identity (adresy).