Ich habe eine Klasse mit einem statischen Mitglied. Dies wird mit einer privaten statischen Funktion derselben Klasse initialisiert.Zugriff auf private statische Funktion während der Initialisierung des statischen Elements
Meine Frage ist: Aufgrund welcher Regel ist das erlaubt? Offensichtlich funktioniert der kommentierte Teil nicht, weil ich nicht auf eine private Funktion außerhalb der Klasse zugreifen darf. Warum ist die Initialisierung des privaten statischen Members beim Start ein Sonderfall? (Und eine Randnotiz: Was ist die Absicht dieser Regel? Ist es, diesen genauen Fall zuzulassen?)
Ich kenne andere Mechanismen, um ein statisches Mitglied zu initialisieren (wie hier: Initializing private static members). Aber in meinem Fall ist das Mitglied const, und so weit ich weiß, kann man es nur durch direkte Initialisierung am Ort der Definition festlegen.
Sie haben Recht über die const. Bearbeitete die Frage. Vielen Dank. –
Ich denke, das wäre klarer als "Die Initialisierung eines statischen Datenelements wird als Teil der Charakterisierung der Klasse betrachtet, obwohl das statische Datenelement im Namespacebereich definiert ist (außerhalb der Klassendefinition)." (Ich habe "Charakterisierung" verwendet, weil "Klassendefinition" im C++ - Standard eine sehr formale Bedeutung hat.) –
@MartinBonner Fine. – songyuanyao