En plus de préciser aux lecteurs du code que vous risquez de provoquer des erreurs si vous modifiez cette variable (vous pouvez utiliser des commentaires pour ce faire).
Pas "peut" ; sera provoquer des erreurs dans votre programme.
- Un compilateur C++ l'appliquera avec des échecs de compilation et des messages de diagnostic ("erreurs de compilation"), sans avoir besoin de commentaires ;
- Un compilateur C l'appliquera dans l'ensemble bien que sa bibliothèque standard présente des lacunes en raison de son héritage, notamment en ce qui concerne les éléments suivants
strchr
et il possède des règles de conversion implicites plutôt indulgentes qui peuvent vous permettre de laisser tomber les données de la base de données. const
sans s'en rendre compte assez facilement. Cependant, ce n'est pas parce que vous avez obtenu une compilation réussie que vous n'avez pas d'erreurs. fait signifie que les erreurs peuvent être des bogues subtils dans votre programme, ainsi que des plantages importants et spectaculaires.
D'une manière ou d'une autre, votre programme est garanti de contenir un erreur à l'intérieur.
Il me semble que si vous ne voulez pas qu'une variable soit modifiée, il suffit de ne pas le faire.
C'est bien beau tout ça, mais personne n'est parfait. Les programmeurs font des erreurs. Cela permet au compilateur - qui ne fait jamais d'erreurs (du moins, pas habituellement) - de vous les signaler.
C'est particulièrement utile lorsque vous utilisez une variable de données à de très nombreuses lignes de code de l'endroit où elle a été créée. Plus elle est éloignée, plus il est facile de la modifier sans se rendre compte que vous n'étiez pas censé le faire. Pour les bases de code importantes et complexes, c'est tout simplement un must.
Vous obtenez une nouvelle mesure de prouvabilité , exactitude y stabilité dans votre base de code, ainsi qu'une grande partie des causes possibles de bogues vraiment subtils et méchants. Il y a aussi de vastes possibilités d'optimisation pour votre compilateur (dans certains cas) lorsqu'il sait qu'une certaine valeur ne changera pas après la compilation.
Nous pourrions énumérer les avantages toute la journée, mais, vraiment, vous n'allez pas tout à fait grok jusqu'à ce que vous ayez travaillé sur une telle base de code.
En fait, dans un monde parfait, toutes les variables seraient const
par défaut et vous devrez les déclarer avec le mot-clé mutable
pour pouvoir les modifier. Le C++ est rétrograde.