Initialisierung privater statischer Datenelemente: Alternative zu statischen Konstruktoren
Es kommt häufig vor, dass in einer Klasse private statische Datenelemente benötigt werden , ähnlich dem Java- oder C#-Konzept statischer Konstruktoren. C bietet jedoch keinen expliziten Mechanismus für statische Konstruktoren.
Um dieses Problem zu beheben, bietet C einen alternativen Ansatz. Anstatt statische Datenelemente innerhalb der Klasse zu deklarieren, erstellen Sie eine separate gewöhnliche Klasse, um die statischen Daten zu speichern. Deklarieren Sie eine statische Instanz dieser gewöhnlichen Klasse innerhalb der gewünschten Klasse.
Zum Beispiel:
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 };
Mit dieser Technik werden die statischen Daten einmal während der Programmausführung initialisiert und können abgerufen werden während der gesamten Laufzeit des Programms. Dieser Ansatz dient als praktikable Alternative zu statischen Konstruktoren in C.
Das obige ist der detaillierte Inhalt vonWie initialisiere ich private statische Datenelemente in C ohne statische Konstruktoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!