Semantik CString
Meskipun objek CString adalah objek dinamis yang dapat tumbuh, objek tersebut bertindak seperti jenis primitif bawaan dan kelas sederhana. Setiap CString
objek mewakili nilai unik. CString
objek harus dianggap sebagai string aktual daripada sebagai penunjuk ke string.
Anda dapat menetapkan satu CString
objek ke objek lainnya. Namun, saat Anda memodifikasi salah satu dari dua CString
objek, objek lain CString
tidak dimodifikasi, seperti yang ditunjukkan oleh contoh berikut:
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"
Perhatikan dalam contoh bahwa kedua CString
objek dianggap "sama" karena mewakili string karakter yang sama. Kelas CString
membebani operator kesetaraan (==
) untuk membandingkan dua CString
objek berdasarkan nilainya (konten) daripada identitas (alamat) mereka.