Qu'est-ce que l'utilisation de const surcharge en C++?

En C++, une fonction de signature dépend, en partie, sur qu'il soit ou non const. Cela signifie qu'une classe peut avoir deux fonctions de membre avec des signatures identiques, sauf que l'un est const et l'autre ne l'est pas. Si vous avez une classe comme ça, alors le compilateur décidera de la fonction d'appel en fonction de l'objet que vous l'appelez sur: si c'est un const instance de la classe, de la const version de la fonction sera appelé; si l'objet n'est pas const, l'autre version sera appelée.

Dans quelles circonstances vous voulez profiter de cette fonctionnalité?