Constructeurs statiques en C : initialisation de membres de données statiques
Les membres de données statiques sont des variables déclarées au sein d'une classe qui sont partagées entre toutes les instances de celle-ci. classe. Dans des langages comme Java et C#, il est possible d'utiliser des constructeurs statiques pour initialiser ces membres avant la création d'instances. Cependant, C n'a pas de constructeur statique désigné.
Pour obtenir des fonctionnalités similaires en C , une approche alternative consiste à créer une classe distincte pour les données statiques. Voici comment cela fonctionne :
class StaticStuff { // Read-only vector of characters std::vector<char> letters_; public: StaticStuff() { for (char c = 'a'; c <= 'z'; c++) { letters_.push_back(c); } } // Getter method to access letters_ const std::vector<char>& getLetters() const { return letters_; } }; class Elsewhere { static StaticStuff staticStuff_; // Initialize once };
Dans cet exemple, StaticStuff contient les lettres membres de données statiques_. Lorsque le programme démarre, le constructeur de StaticStuff s'exécutera une fois, initialisant automatiquement letter_ avec les caractères corrects. Ensuite, les instances d'Elsewhere peuvent accéder à letter_ via l'instance statique de StaticStuff sans avoir besoin de l'initialiser explicitement.
Cette méthode fournit un moyen propre et efficace d'initialiser les membres de données statiques en C sans recourir à des hacks laids ou à des vérifications inutiles. dans les constructeurs d'instances.
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!