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.