Contenu du cours
Pointeurs Intelligents C++
Pointeurs Intelligents C++
Références Constantes et Immuabilité
Une référence constante est un type spécial de référence qui ne peut pas être utilisée pour changer la valeur de l'objet référencé. Elle fournit un niveau d'immuabilité, c'est-à-dire qu'elle garantit que les données restent constantes dans le cadre de la référence. Considérons un exemple pour mieux comprendre :
main
int main() { int var = 42; // Const reference to value const int& ref = var; // Uncomment to get compilation error: Cannot modify through a const reference // ref = 10; }
Dans le code ci-dessus, nous créons une référence constante en utilisant le mot-clé const
. Une fois que nous avons fait cela, nous ne pouvons pas modifier la valeur de la variable référencée (var
dans notre cas) en utilisant cette référence. Vous pouvez tester cela en décommentant la ligne ref = 10;
pour obtenir une erreur de compilation.
Avantages de l'immuabilité
Le code immuable présente plusieurs avantages. Il améliore la lisibilité du code et simplifie le débogage ; lorsqu'une personne voit qu'une variable a été déclarée comme constante, elle peut être sûre que sa valeur ne changera nulle part. Cela réduit également la surcharge de compilation, car le compilateur n'a pas à se soucier des mutations de valeur d'une référence constante.
Références constantes en tant que paramètres de fonction
L'un des cas d'utilisation les plus puissants des références constantes est de les passer en tant que paramètres de fonction pour éviter des copies inutiles et garantir l'intégrité des données. Voici comment cela fonctionne :
-
Puisqu'une référence n'est qu'un alias de la variable originale, il n'y a pas de copie impliquée.
-
Puisque nous définissons la référence comme constante, la fonction ne peut pas modifier la valeur de la référence. Cela garantit que la fonction n'obtient qu'un accès en lecture seule à la variable.
Puisque le but de la fonction displayInfo
est d'afficher le message, et non de le mettre à jour, nous utilisons une référence constante pour passer message
à celle-ci. De cette façon, la fonction ne peut pas mettre à jour la valeur de message
.
En règle générale, essayez d'utiliser des références constantes dans toutes les fonctions de votre code, sauf si vous devez modifier la variable à l'intérieur de la fonction.
Merci pour vos commentaires !