Maison > développement back-end > C++ > Comment puis-je initialiser correctement les membres de données constantes en C ?

Comment puis-je initialiser correctement les membres de données constantes en C ?

Patricia Arquette
Libérer: 2024-12-10 01:15:10
original
918 Les gens l'ont consulté

How Can I Properly Initialize Constant Data Members in C  ?

Initialisation des membres de données Const : un guide complet

Introduction :

Comprendre l'initialisation des membres de données constants en C peuvent être déroutants. Cet article vise à clarifier cet aspect en traitant d'une erreur courante et en fournissant une explication détaillée du processus.

Erreur rencontrée :

Considérez l'extrait de code suivant :

#include <iostream>

using namespace std;

class T1 {
  const int t = 100;
  public:
  
  T1() {
    cout << "T1 constructor: " << t << endl;
  }
};
Copier après la connexion

Lors de la tentative d'initialisation du membre de données const t dans le constructeur de classe, l'erreur suivante se produit :

test.cpp:21: error: ISO C++ forbids initialization of member ‘t’
test.cpp:21: error: making ‘t’ static
Copier après la connexion

Comprendre l'erreur :

L'erreur provient de la restriction du langage C qui interdit l'initialisation des membres de données const dans la définition de classe. En effet, les variables const nécessitent une définition unique, ce qui ne peut pas être garanti lorsqu'elles sont incluses dans plusieurs unités de traduction.

Comment initialiser les membres de données Const :

Pour initialiser une const membre de données, il doit être défini en dehors de la définition de la classe. Ceci peut être réalisé via la liste d'initialisation de classe :

T1() : t(100) {}
Copier après la connexion

Dans la liste d'initialisation, t se voit attribuer la valeur de 100 avant que l'initialisation de la classe ne se produise. Cela garantit que le membre de données const est initialisé lors de la création de l'objet.

Conclusion :

L'initialisation des membres de données const nécessite le respect de règles de langage spécifiques. En les définissant en dehors de la définition de la classe et en utilisant la liste d'initialisation, les programmeurs peuvent initialiser efficacement les membres de données const et éviter l'erreur susmentionnée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal