LINUX.ORG.RU

История изменений

Исправление m0rph, (текущая версия) :

Да тут все так же, как и с сишным доступом к членам структуры.

int v1 = foo.data; // Обращение к члену data при доступе через экземпляр структуры/ссылку.
int v2 = ptr->data; // Обращение к члену data при доступе через указатель на структуру.
Во втором случае оператор -> совмещает в себе сразу два действия: разыменовывание указателя и обращение к data через экземпляр структуры (мы его получили путем разыменовывания указателя). Поэтому, как уже написали, для второго случая существует более подробная эквивалентная запись:
int v3 = (*ptr).data;
Собственно с функциями членами C++ все тоже самое.

Исходная версия m0rph, :

Да тут все так же, как и с сишным доступом к членам структуры.

int v1 = foo.data; // Обращение к члену data при доступе через экземпляр структуры/ссылку.
int v2 = ptr->data; // Обращение к члену data при доступе через указатель на структуру.
Во втором случае оператор -> совмещает в себе сразу два действия: разыменовывание указателя и обращение к data через экземпляр структуры (мы его получили путем разыменовывания указателя). Поэтому, как уже написали, для второго случая существует более подробная эквивалентная запись:
int v3 = (*ptr).data;