const
Remonter à Liste alphabétique des mots clés - Index
Catégorie
Syntaxe
const <nom de variable> [ = <valeur> ]; <nom de fonction> ( const <type>*<nom de variable> ;) <nom de fonction> const;
Description
Utilisez le modificateur const pour que la valeur d'une variable ne soit plus modifiable.
Utilisez le modificateur const pour affecter une valeur initiale à une variable qui ne peut pas être changée par le programme. Toute tentative ultérieure d'affectation de valeur const entraîne une erreur de compilation.
Un pointeur const ne peut pas être modifié, bien que l'objet sur lequel il pointe puisse l'être. Considérez les exemples suivants.
const float pi = 3.14; // Utilisé seul, const équivaut à int. const maxint = 12345; // Un pointeur constant char *const str1 = "Hello, world"; // Un pointeur sur une chaîne de caractères constante. char const *str2 = "C++Builder";
Etant donné ces déclarations, les instructions suivantes sont incorrectes.
pi = 3.0; // Affecte une valeur à une constante. i = maxint++; // Incrémente une constante. str1 = "Hi, there!" // Pointe str1 vers autre chose.
Utilisation du mot clé const dans les programmes C++
C++ étend l'utilisation de const aux classes et aux fonctions membres. Dans une définition de classe C++, utilisez le modificateur const suivant une déclaration de fonction membre. La fonction membre ne peut modifier aucune donnée dans la classe.
Un objet classe défini avec le mot clé const tente de n'utiliser que des fonctions membres également définies avec const. Si vous appelez une fonction membre non définie comme const, le compilateur émet un avertissement signalant qu'une fonction non-const est appelée pour un objet const. Cette façon d'utiliser le mot clé const est une fonctionnalité de sécurité de C++.
Avertissement : Un pointeur peut modifier indirectement une variable const, comme dans cet exemple :
- (int *)&my_age = 35;
Si vous utilisez le modificateur const avec un paramètre pointeur dans une liste de paramètres de fonction, la fonction ne peut pas modifier la variable sur laquelle le pointeur pointe. Par exemple,
int printf (const char *format, ...);
printf ne peut modifier la chaîne format.