Maison > développement back-end > C++ > Pourquoi ne puis-je pas initialiser les membres statiques non constants directement dans une déclaration de classe C ?

Pourquoi ne puis-je pas initialiser les membres statiques non constants directement dans une déclaration de classe C ?

Mary-Kate Olsen
Libérer: 2024-12-08 18:06:13
original
279 Les gens l'ont consulté

Why Can't I Initialize Non-Constant Static Members Directly in a C   Class Declaration?

Déclaration de membres statiques en C

Lors de la déclaration de membres statiques en C , certaines restrictions doivent être respectées pour éviter les erreurs de compilation. Une erreur courante rencontrée survient lors de la tentative d'initialisation d'une variable membre statique directement dans la déclaration de classe, comme le montre l'exemple fourni :

public :
         static int j=0;
Copier après la connexion

Pourquoi l'initialisation de membre statique est-elle interdite ?

C interdit l'initialisation directe de membres statiques non constants dans la déclaration de classe pour garantir la cohérence et la prévisibilité de l'organisation du code. En exigeant que les membres statiques soient initialisés séparément, cela permet un meilleur contrôle sur leur processus d'initialisation et réduit les risques d'initialisations involontaires ou conflictuelles.

Initialisation des membres statiques Const

Contrairement aux membres statiques non constants, les membres statiques const peuvent être initialisés dans la déclaration de classe. En effet, les membres const sont immuables et ne peuvent pas être modifiés après l'initialisation. Par conséquent, leur initialisation au sein de la classe garantit leur intégrité et leur cohérence.

Initialisation des variables statiques en C

Contrairement au C, les variables statiques en C ne sont pas automatiquement initialisées à 0 par défaut. Pour initialiser des variables statiques, vous devez les définir séparément en dehors de la déclaration de classe dans un fichier .cpp. Voici un exemple de la façon d'initialiser une variable statique dans un fichier .cpp :

// Header file
class Test
{
  public:
    static int j;
};

// .cpp file

// Initialize static variables here
int Test::j = 0;

// Constructor
Test::Test(void)
{
   // Class initialization code
}
Copier après la connexion

Cette approche permet une initialisation explicite et contrôlée des variables statiques, garantissant qu'elles sont initialisées avec les valeurs prévues avant d'être utilisées.

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