Найти в Дзене

Использование стрелок для разыменования указателя на объект в С++

Ранее я уже говорил о возможных неожиданностях при разыменовании указателя на объект в С++. И там мы разобрались, что в случае с объектами записать значение в свойство можно так:

(*PCoord).X = 5;

Это работает. Однако это не очень удобно. Потому что, во-первых, надо всё время помнить о том, что необходимо использовать скобки, а во-вторых, приходится набирать кучу лишних символов и тратить на это время.

К счастью, в С++ есть и другой, более простой способ выполнить то же действие - это оператор -> (ну или стрелка, если вам так удобнее). К сожалению, всё равно придётся набирать два символа, из которых состоит этот оператор. Но это всё равно лучше (а для кого-то будет и более понятно). Пример:

PCoord->X = 5;

Здесь мы выполняем совершенно то же самое действие - присваиваем число 5 свойству Х.

Также обратите внимание на то, что между этим оператором и другими элементами могут быть пробелы:

PCoord -> X = 5;

А вот между символами, из которых состоит этот оператор, пробелы недопустимы. Вот такой код будет ошибкой:

PCoord- >X = 5;

Ну и для полноты картины рисунок с исходным кодом:

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.