const correctness is a very useful troubleshooting tool, as it allows the programmer to quickly determine which functions might be inadvertently modifying code. It also prevents unintentional errors, such as the one shown in
Const Correct Function Parameters, from compiling properly and going unnoticed.
It is much easier to design a class for
const correctness, than it is to later add
const correctness to a pre-existing class. If possible, design any class that can be
const correct so that it is
const correct, to save yourself and others the hassle of later modifying it.
Note that this can also be applied to
volatile correctness if necessary, with the same rules as for
const correctness, but this is used much less often.