En C++ plus précisément, quelles sont les différences sémantiques entre par exemple :
et
pour les deux `` comme un lien et un spécificateur de classe de stockage (c.-à-d. à l’intérieur et à l’extérieur une fonction).
En C++ plus précisément, quelles sont les différences sémantiques entre par exemple :
et
pour les deux `` comme un lien et un spécificateur de classe de stockage (c.-à-d. à l’intérieur et à l’extérieur une fonction).
À la portée de fichier, pas de différence en C++. const
fait une liaison interne par défaut, et toutes les variables globales ont statique de la vie. Mais la première variante a le même comportement dans C, de sorte que peut être une bonne raison de l'utiliser.
Au sein d'une fonction, la deuxième version peut être calculée à partir de paramètres, en C ou en C++ il n'a pas à être une constante de compilation à l'instar de certains autres langues exigent.
Au sein d'une classe, essentiellement la même chose que pour les fonctions, une instance const
de la valeur peut être calculée dans le ctor-initialiseur-liste. Un static const
est défini lors du démarrage de l'initialisation et reste inchangée pour le reste du programme. (Remarque: le code de static
membres est un peu différent parce que la déclaration et l'initialisation sont séparés.)
Rappelez-vous, en C++, const
moyen en lecture seule, pas constante. Si vous avez un pointeur-à-const
puis d'autres parties du programme peuvent changer la valeur alors que vous n'êtes pas à la recherche. Si la variable a été définie avec const
, alors personne ne peut le changer après l'initialisation, mais initialisation peut encore être arbitrairement complexe.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.