statische Konstruktoren in C ++? Ich muss private statische Objekte initialisieren
Ich möchte eine Klasse mit einem privaten statischen Datenelement (einem Vektor, der alle Zeichen von a bis z enthält) haben. In Java oder C # kann ich einfach einen "statischen Konstruktor" erstellen, der ausgeführt wird, bevor ich Instanzen der Klasse erstelle, und die statischen Datenelemente der Klasse einrichten. Es wird nur einmal ausgeführt (da die Variablen schreibgeschützt sind und nur einmal gesetzt werden müssen) und da es eine Funktion der Klasse ist, kann es auf ihre privaten Mitglieder zugreifen. Ich könnte dem Konstruktor Code hinzufügen, der prüft, ob der Vektor initialisiert ist, und ihn initialisiert, wenn dies nicht der Fall ist. Dies führt jedoch zu vielen erforderlichen Überprüfungen und scheint nicht die optimale Lösung für das Problem zu sein.
Mir fällt der Gedanke ein, dass die Variablen, da sie nur lesbar sind, nur öffentliche statische Konstanten sein können, sodass ich sie einmal außerhalb der Klasse setzen kann, aber es scheint wieder eine Art hässlicher Hack zu sein.
Ist es möglich, private statische Datenelemente in einer Klasse zu haben, wenn ich sie nicht im Instanzkonstruktor initialisieren möchte?