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

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

Susan Sarandon
Libérer: 2024-12-09 00:58:11
original
825 Les gens l'ont consulté

How to Properly Initialize Constant Data Members in C  ?

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;
  }
};
Copier après la connexion

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!

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