Я читаю некоторый код на С ++ и меня немного смущает правильная интерпретация операторов косвенного обращения в скобках. Например, в строке
b = ((aclass*)a)-> b
я не могу быстро прочитать ту часть (aclass*)
, которая является оператором косвенного обращения в скобках. Зачем нужны круглые скобки и какую неопределенность они решают?
Я склонен интерпретировать вышеприведенное как инструкцию для определения b
в текущей области видимости, присваивая ему значение одноименного члена aclass
- Тип объекта, на который ссылается указатель a
. То есть что-то вроде
b = (aclass *a)->b
Аналогично, в другом месте есть конструкция:
const aclass *a = (aclass*) b
Интересно, неправильно ли я интерпретирую операторы и их приоритет, или я мог бы обойтись без эти скобки.
Я посмотрел на Когда дополнительные скобки оказывают влияние, кроме как на приоритет оператора? , но для меня звучит слишком технически, чтобы заметить подсказку .