L'inconvénient de passer une variable par référence est que potentiellement
la fonction peut modifier la valeur de cette variable. Si l'on souhaite
s'assurer que ce ne sera pas le cas, il suffit de préciser que la référence
est constante.
void rien(const int& a){ ... }
Une telle fonction ne pourra pas modifier la variable a
et ne pourra
elle-même qu'appeler des fonctions sur a
qui ne la modifient pas
(c-à-d pas de fonctions qui prennent a
en référence sans préciser
const
). Tout essai de modifier la valeur de a
dans la
fonction rien
se soldera par un message d'erreur du compilateur.
Passer des arguments en const
référence au lieu de les recopier
(comme les arguments normaux) permet justement d'économiser ce temps de copie.