Qualificateur const C++

Récemment, j'ai passé en revue const à travers des documents en ligne, et après l'avoir comparé avec des livres professionnels, j'ai constaté qu'il y avait de nombreuses erreurs sur Internet, je vais donc en faire une note ici.

1. const définit des constantes :

Une fois créée, sa valeur ne peut pas être modifiée, elle doit donc être initialisée.

S'il est initialisé avec une expression, il sera initialisé à l'exécution ; s'il est initialisé avec une valeur, il sera initialisé à l'étape de compilation, et le compilateur remplacera tous les endroits où la variable est utilisée par la valeur correspondante. Pour cette raison, l'objet const est défini par défaut uniquement sur Il est valide dans le fichier, mais const peut être modifié avec le mot-clé extern pour le rendre disponible dans d'autres fichiers.

(例:const int x=5; const int y=init(); int *const z=&Z;)

2. Référence/pointeur constant :

Une référence/adresse à une constante/un pointeur ne peut pas être utilisée pour modifier l'objet vers lequel il est lié/pointé. (De nombreuses informations sur Internet indiquent que l'objet pointé ne peut pas être modifié. En fait, il ne peut pas être modifié par son intermédiaire. Dans le même temps, la valeur du pointeur lui-même peut également être modifiée. Références (seuls les alias ne sont pas des variables ) ne peut pas.)

Cependant, seuls des pointeurs constants peuvent être utilisés pour stocker des adresses constantes, ce qui peut être à l'origine d'erreurs dans les documents en ligne.

(例:const int &x=y; const int *z=&Z;)

3. Utilisez sur la fonction :

Lorsque le paramètre de fonction est un pointeur constant, cela peut éviter de modifier le contenu de la position pointée par le pointeur de paramètre à l'intérieur de la fonction.

Lorsque const est utilisé pour modifier le corps de la fonction, placez-le à la fin de la ligne du corps de la fonction, indiquant que dans le corps de la fonction, les données membres de l'objet ne peuvent pas être modifiées et que les fonctions membres non const ne peuvent pas être appelées.

(例:void fun1(const int x){}; void fun2()const;)

Je suppose que tu aimes

Origine blog.csdn.net/WindRushNight/article/details/122986771
conseillé
Classement