Initialisation en classe de membres statiques en C
En C , la définition d'une variable membre statique à l'intérieur de la déclaration de classe n'est pas autorisée. Cette action entraîne l'erreur de compilation « ISO C interdit l'initialisation en classe du membre statique non const `j' ».
Raisons de l'interdiction :
Exception pour les membres Const :
Les membres statiques Const peuvent être initialisés dans la déclaration de classe car ils ne sont pas modifiés après initialisation. Cela garantit l'efficacité du code et élimine le besoin d'initialisation explicite.
Implications pour les valeurs standard :
En C, les variables statiques sont automatiquement initialisées à 0 si elles ne sont pas explicitement initialisé. Cependant, en C , les variables statiques ne sont pas automatiquement initialisées. Vous devez les initialiser manuellement soit dans la déclaration de classe (pour les membres const), soit dans un fichier .cpp séparé.
Solution :
Pour définir une statique non const variable membre en C, vous devez l'initialiser dans un fichier .cpp distinct plutôt que dans la déclaration de classe.
Pour exemple :
// Header file class Test { public: static int j; }; // .cpp file int Test::j = 0;
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!