Partager via


Valeurs de constante

Le mot clé de const spécifie qu'une valeur de variable est constante et indique au compilateur empêcher le programmeur de le modifier.

// constant_values1.cpp
int main() {
   const int i = 5;
   i = 10;   // C3892
   i++;   // C2105
}

En C++, vous pouvez utiliser le mot clé de const au lieu de la directive de préprocesseur du #define pour définir des valeurs constantes.Les valeurs définies avec const sont soumises à la vérification du type, et peuvent être utilisées à la place des expressions constantes.En C++, vous pouvez spécifier la taille d'un tableau avec une variable de const comme suit :

// constant_values2.cpp
// compile with: /c
const int maxarray = 255;
char store_char[maxarray];  // allowed in C++; not allowed in C

En C, les valeurs de constante ont comme valeur par défaut à la liaison externe, elles peuvent apparaître uniquement dans des fichiers sources.En C++, les valeurs de constante ont comme valeur par défaut à la liaison interne, ce qui leur permet de s'afficher dans les fichiers d'en-tête.

Le mot clé de const peut également être utilisée dans les déclarations de pointeur.

// constant_values3.cpp
int main() {
   char *mybuf = 0, *yourbuf;
   char *const aptr = mybuf;
   *aptr = 'a';   // OK
   aptr = yourbuf;   // C3892
}

Un pointeur vers une variable déclarée comme const peut être assigné à un pointeur qui est également déclaré comme const.

// constant_values4.cpp
#include <stdio.h>
int main() {
   const char *mybuf = "test";
   char *yourbuf = "test2";
   printf_s("%s\n", mybuf);

   const char *bptr = mybuf;   // Pointer to constant data
   printf_s("%s\n", bptr);
   
   // *bptr = 'a';   // Error
}

Sortie

test
test

Vous pouvez utiliser des pointeurs vers les constantes à mesure que les paramètres de fonction pour empêcher la fonction de modifier un paramètre sont concluants par l'intermédiaire d'un pointeur.

Pour les objets qui sont déclarées comme const, vous ne pouvez appeler fonctions membres constantes.Cela garantit que l'objet constante n'est jamais modifiée.

birthday.getMonth();    // Okay
birthday.setMonth( 4 ); // Error

Vous pouvez appeler les fonctions membres constantes ou non constantes pour un objet non constante.Vous pouvez aussi surcharger une fonction membre à l'aide de le mot clé de const ; cela permet une version différente de la fonction à appeler pour les objets constants et non constant.

Vous ne pouvez pas déclarer les constructeurs ou les destructeurs avec le mot clé de const .

357syhfh.collapse_all(fr-fr,VS.110).gifC et différences const C++

Lorsque vous déclarez une variable comme const dans le fichier de code source c, vous provoquez :

const int i = 2;

Vous pouvez ensuite utiliser cette variable dans un autre module comme suit :

extern const int i;

Mais pour obtenir le même comportement en C++, vous devez déclarer la variable du const comme suit :

extern const int i = 2;

Si vous souhaitez déclarer une variable d' extern dans le fichier de code source C++ à utiliser dans le fichier de code source c, utilisez :

extern "C" const int x=10;

pour empêcher le nom supprimer par le compilateur C++.

Voir aussi

Référence

const (C++)

Fonctions membres constantes