Statische Variablen in C-Klassen initialisieren
Bei der objektorientierten Programmierung ist es oft notwendig, statische Variablen innerhalb von Klassen zu initialisieren. Diese Praxis kann jedoch Herausforderungen mit sich bringen, wie die folgende Frage zeigt:
Dilemma:
Ein Entwickler hat mehrere Funktionen innerhalb seiner Klasse identifiziert, die keinen Objektzugriff erfordern und daher keinen Objektzugriff erfordern wurde als statisch markiert. Allerdings verlangt der Compiler, dass alle Variablen, auf die zugegriffen wird, ebenfalls als statisch deklariert werden. Der Entwickler deklariert diese Variablen anschließend als statische Konstante innerhalb der Klasse, stößt jedoch auf Kompilierungsfehler.
Lösung:
Um statische Variablen innerhalb einer Klasse zu initialisieren, sollte man sie in der Klassendeklaration definieren aber initialisieren Sie sie in einer separaten Quelldatei. Dies wird unten demonstriert:
// Class Header class Thing { public: static string RE_ANY; static string RE_ANY_RELUCTANT; }; // Source File string Thing::RE_ANY = "([^\n]*)"; string Thing::RE_ANY_RELUCTANT = "([^\n]*?)";
Alternative Überlegung:
Es ist wichtig zu beachten, dass das Festlegen von Funktionen als statisch bedeutet, dass sie nicht mehr mit einem Objekt verknüpft sind und nicht auf nicht statische Mitglieder zugreifen können . Erwägen Sie stattdessen, sie als const zu markieren, was sie daran hindert, Mitglieder zu ändern, aber den Zugriff auf sie ermöglicht.
Das obige ist der detaillierte Inhalt vonWie initialisiert man statische Variablen in C-Klassen richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!