Constants and immutability
Con.3
По умолчанию передавайте указатели и ссылки на `const`
Причина
Чтобы вызываемая функция неожиданно не изменила значение. Программу гораздо проще анализировать, когда вызываемые функции не изменяют состояние.
Пример
void f(char* p); // f изменяет *p? (предположим, что да)
void g(const char* p); // g не изменяет *p
Примечание
Передача указателя или ссылки на не-const сама по себе не является плохой практикой, но это следует делать только тогда, когда вызываемая функция должна изменять объект.
Примечание
Контроль
- Помечать функции, которые не изменяют объект, переданный указателем или ссылкой на не-
const - Помечать функции, которые (с помощью приведения) изменяют объект, переданный указателем или ссылкой на
const