Константные параметры и ссылки в C++
Как известно, константные параметры меняться не могут. Давайте посмотрим, как обстоит дело с такими параметрами в языке программирования C++.
Вот, как это может выглядеть в программном коде:
Итак, константные параметры не меняются. Это же касается и передачи параметра непосредственно по ссылке:
При этом мы можем передать константному параметру в качестве аргумента не только константу, но и переменную:
Однако не стоит путать вышеописанную ситуацию со случаем передачи констант в виде аргументов для неконстантных параметров:
Важно отметить, что несмотря на тот факт, что при вызове функции константы ей передаются, раз сами параметры константными не являются, функция способна менять их значения.
Константные ссылки
Когда функция получает аргументы непосредственно по ссылке, то для того, чтобы передать константу в функцию, параметры тоже должны представлять ссылку на эту константу:
Таким образом, когда в функцию надо передать большие объекты, которые меняться не должны, как раз таки определение параметров в качестве константных ссылок нам больше всего и подойдет.
По материалам https://metanit.com/cpp/.