muhasjo написав:Крапка використовується коли об'єкт не ініціалізований через оператор new.
Стрілка вправо якраз і використовується коли обєктр проініціалізований через new
CString * pStr = new CString("text");
pStr->length();
CString str = CString("text");
str.length();
Тобто, із вище наведених прикладів
pStr->length() // робота по вказівнику
str.length() // робота по посиланню
Вибачте, але я вважаю що ініалізація тут ні до чого. Операція "->" використовуються з вказівниками, а оскільки new повертає вказівник, то ваш приклад з new вже є наслідоком, а не причиною використання "->".
Різниця між "." та "->" в тому що перше використовується для доступу членів в об’єктах, а друге - у вказівниках на об’єкти. Також не забувайте що операцію "->" можна перевизначити.