Initialisation de membres de données statiques privées : alternative aux constructeurs statiques
Il est courant de rencontrer un besoin de membres de données statiques privées dans une classe , similaire au concept Java ou C# des constructeurs statiques. Cependant, C ne fournit pas de mécanisme explicite pour les constructeurs statiques.
Pour résoudre ce problème, C propose une approche alternative. Au lieu de déclarer des données membres statiques dans la classe, créez une classe ordinaire distincte pour contenir les données statiques. Déclarez une instance statique de cette classe ordinaire au sein de la classe souhaitée.
Par exemple :
class StaticStuff { std::vector<char> letters_; public: StaticStuff() { for (char c = 'a'; c <= 'z'; c++) letters_.push_back(c); } // Provide a method to access letters_ }; class Elsewhere { static StaticStuff staticStuff; // Static instance runs once };
En utilisant cette technique, les données statiques sont initialisées une fois lors de l'exécution du programme et sont accessibles tout au long de la durée de vie du programme. Cette approche constitue une alternative viable aux constructeurs statiques en C .
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!