C++ Const Correctness
Const correctness documents whether an operation may modify an object and lets the compiler enforce that contract. It applies to objects, references, pointers, member functions, and overload selection.
Expressing immutability through const objects, member functions, pointers, and references.