const
à la fin d'une signature de fonction signifie que la fonction doit supposer que l'objet dont elle est membre est const
. En termes pratiques, cela signifie que vous demandez au compilateur de vérifier que la fonction membre ne modifie pas les données de l'objet de quelque manière que ce soit. Cela signifie demander au compilateur de vérifier qu'il ne modifie pas directement les données membres et qu'il n'appelle pas de fonction qui ne garantit pas qu'elle ne modifiera pas l'objet.
Lorsque vous créez un objet const
, vous demandez au compilateur de s'assurer que cet objet ne change pas au-delà de son initialisation. Cela signifie à son tour que le compilateur vérifiera que vous ne modifiez pas directement ses données membres et que vous n'appelez aucune fonction qui ne garantit pas qu'elle ne modifie pas l'objet.
Tout cela fait partie de la philosophie de la const-correctness. Essentiellement, cela signifie que si les choses fonctionnent maintenant et ne changent pas, elles ne se casseront jamais. En d'autres termes, les choses constantes sont plus faciles à manipuler de manière fiable. Ce const
à la fin des signatures de fonction est un outil pour vous interdire de tout casser. Cela signifie donc que vous devriez mettre const
partout où c'est possible.