Maison >développement back-end >C++ >Pourquoi les variables membres statiques en C sont-elles initialisées en dehors de la définition de classe ?
Initialisation des variables membres statiques en C
En programmation orientée objet (POO), il est courant d'avoir des variables membres dans les classes. Cependant, les variables membres statiques en C diffèrent de leurs homologues non statiques dans la mesure où elles sont initialisées en dehors de la définition de classe. Cela soulève la question : pourquoi est-ce le cas ?
Contraintes logiques
struct Gizmo { static string name = "Foo"; };
Dans cet exemple, le nom serait défini dans chaque unité de traduction qui inclut le fichier d'en-tête, en violation de la règle.
Perspectives historiques
Certains développeurs soutiennent que l'initialisation au sein de la classe serait plus intuitive et moins déroutante. Cependant, la norme C n'a pas modifié ce comportement en raison de :
Conclusion
L'exigence d'une initialisation externe des membres statiques Les variables en C sont motivées par des contraintes logiques et des considérations historiques. En centralisant l'initialisation dans une seule unité de traduction, la norme garantit la cohérence, le respect de la règle de définition unique et la compatibilité ascendante avec le code C existant.
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!