@NeYmen

В чем отличие оператора -> от .(точки)?

У меня простой вопрос, почему обращаясь к динамическому объекту класса, используется оператор ->, а не . ? Да IDE (В моём случае Visual Studio 2019) сам заменяет "точку" на "стрелочку", но почему это так? В чём отличие?
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
a->b это более короткая запись для (*a).b

То есть, стрелка сочетает в себе разименовывание указателя и обращение к методу.

Ну и если a - это класс, то оператор стрелка может быть в нем определен по желанию автора класса.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
GavriKos
@GavriKos
Компилятор ничего не заменяет - видимо это у вас IDE делает.
Отличие - в назначении. В любом учебнике по плюсам найдете.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
ЕМНИП
a->b(*a).b
Ответ написан
Комментировать
@res2001
Developer, ex-admin
Стрелка используется с указателями на класс/структуру, а точка со ссылками или с непосредственно экземпляром класса/структуры. Т.е. если вы попытаетесь использовать точку с указателем - получите синтаксическую ошибку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы