Heim > Backend-Entwicklung > C++ > Wie initialisiert man statische Variablen in C-Klassen richtig?

Wie initialisiert man statische Variablen in C-Klassen richtig?

DDD
Freigeben: 2024-12-05 13:12:11
Original
934 Leute haben es durchsucht

How to Properly Initialize Static Variables in C   Classes?

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]*?)";
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage