Maison >développement back-end >C++ >Comment initialiser des membres de données statiques en C sans utiliser le constructeur d'instance ?
Dans la programmation orientée objet, les données membres statiques sont partagées entre toutes les instances d'une classe. Généralement, ils sont initialisés dans le constructeur d'instance. Cependant, que se passe-t-il si vous souhaitez configurer des données membres statiques sans compter sur le constructeur d'instance ?
Pour émuler le comportement des constructeurs statiques, créez une classe distincte pour encapsuler les données statiques. Par exemple, considérons la classe suivante :
class C { // read-only, can also be static const // should be filled with all characters from 'a' to 'z' static std::vector<char> alphabet; public: C() { /* ... */ } };
Pour y parvenir, définissez les données statiques dans une classe ordinaire distincte :
class StaticStuff { std::vector<char> letters_; public: StaticStuff() { for (char c = 'a'; c <= 'z'; c++) { letters_.push_back(c); } } };
Maintenant, créez une instance statique de cette classe dans la classe d'origine :
class Elsewhere { static StaticStuff staticStuff; // constructor runs once, single instance };
En créant une instance statique de la classe StaticStuff, vous initialisez essentiellement les données membres statiques avant la création de toute instance de la classe Elsewhere, imitant efficacement la fonctionnalité d'un constructeur statique.
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!