#cpp
Имеется три объекта одного класса с перегруженными операциями + и *. Сохранят ли эти операции приоритет или нет? Почему? Например: rezult = a + b * c. Где a, b, c - объекты одного класса. Какая будет последовательность выполненных операций и почему?
Ответы
Ответ 1
В С и С++ приоритет операций диктуется грамматикой языка и наследуется из грамматики языка. Грамматике языка не интересно, встроенные ли это операторы или перегруженные. Приоритет операций в общем случае не имеет никакого отношения к последовательности выполнения операторов. Но именно для перегруженных операторов такая связь имеется - перегруженные операторы выполняются именно в порядке их приоритета. Если считать, что все операторы в данном выражении перегружены, то сначала будет выполнено умножение b * c, затем сложение a + ..., и затем - присваивание result = ....
Комментариев нет:
Отправить комментарий