Initialisation des membres de données constantes
En programmation C, les membres de données constantes sont utilisés pour définir des valeurs qui ne peuvent pas être modifiées après l'initialisation. Lorsque vous tentez d'initialiser un membre de données const dans la définition de classe, vous pouvez rencontrer des erreurs dues aux restrictions de C.
Explication de l'erreur
L'erreur du compilateur est due au fait que C interdit l'initialisation des données membres const dans la définition de classe. Cela permet d'éviter plusieurs définitions du même membre de données dans différentes unités de traduction.
Solution : initialisation en dehors de la classe
Pour initialiser un membre de données const, il doit être défini en dehors de la définition de la classe. Ceci peut être réalisé en utilisant la liste d'initialisation dans le constructeur, comme indiqué ci-dessous :
#include <iostream> using namespace std; class T1 { const int t; // Declaration of const data member public: T1() : t(100) // Initialization in initializer list { cout << "T1 constructor: " << t << endl; } };
Liste d'initialisation
La liste d'initialisation dans le constructeur initialise le membre de données const avant l'initialisation de la classe. Cela permet d'attribuer la valeur avant la création de l'objet de classe.
Considérations supplémentaires
Il est important de noter que l'initialisation d'un membre de données const à l'aide de la liste d'initialisation doit être effectué dans le constructeur, et il ne peut pas être modifié ultérieurement dans le programme.
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!