Интересно, что далеко не все мне знакомые программисты исповедуют радикальный подход по использованию const
: использовать const
абсолютно везде, где это не приводит к ошибкам компиляции.
Я не имею ввиду очевидные применения const
для аргументов функций и константных методов.
Я имею ввиду, что любая переменная, которая не меняется с момента ее создания, должна быть const
. Само название “переменная” значит, что объект должен меняться. Если он не меняется, то это уже не переменная. Сделать переменную непемеренной в C/C++ можно с помощью ключевого слова const
.
Пара примеров, где люди часто не ставят const
:
const int sz = very_long_name_to_calculate_size(...); for (int i = 0; i < sz; ++i) { ... const VeryLongClassName var(a, lot, of, different, parameters); int a = var.getX(); // Only "const" functions of "VeryLongClassName" are called further down.
Кстати, явное указание на неизменность переменной помогает компилятору в оптимизации.
Посты по теме: