Heim > Backend-Entwicklung > C++ > Wie kann ich statische Mitglieder in C richtig initialisieren?

Wie kann ich statische Mitglieder in C richtig initialisieren?

Barbara Streisand
Freigeben: 2024-12-14 05:51:10
Original
188 Leute haben es durchsucht

How Can I Properly Initialize Static Members in C  ?

Initialisierung statischer Mitglieder in C

In C kann die Definition statischer Mitglieder innerhalb von Klassendefinitionen ein verwirrendes Thema sein. Dieser Artikel befasst sich mit Fragen zur Initialisierung statischer Variablen in C und untersucht, warum die In-Class-Initialisierung verboten ist und wie man sie richtig initialisiert.

1. Verbot der In-Class-Initialisierung

Beim Versuch, eine öffentliche statische Variable innerhalb einer Klassendeklaration zu definieren, wie unten gezeigt, können Kompilierungsfehler auftreten:

public:
static int j = 0;
Nach dem Login kopieren

Dies liegt daran, dass Der C-Standard verbietet die Initialisierung nicht konstanter statischer Mitglieder innerhalb von Klassendeklarationen, wie in der Fehlermeldung angegeben: „ISO C verbietet die klasseninterne Initialisierung nicht konstanter statischer Mitglieder.“ 'j'."

2. Zulässige Initialisierung von Const-Mitgliedern

Im Gegensatz zu nicht-konstanten statischen Mitgliedern können konstante statische Mitglieder innerhalb von Klassendeklarationen initialisiert werden. Dies ist zulässig, da const-Mitglieder als Konstanten zur Kompilierungszeit betrachtet werden und mit einem Wert initialisiert werden müssen, der zur Kompilierungszeit bekannt ist.

3. Initialisierung statischer Variablen in C

In C werden statische Variablen nicht wie in C automatisch auf Null initialisiert. Um statische Variablen in C zu initialisieren, müssen Sie ihre Anfangswerte explizit außerhalb der Klasse definieren Deklaration, typischerweise in einer separaten Quelldatei (.cpp).

Um beispielsweise die oben deklarierte statische Variable j zu initialisieren, würden Sie den Code wie folgt ändern folgt:

// Header file
class Test {
public:
    static int j;
};

// Source file
int Test::j = 0;
Nach dem Login kopieren

Schlussfolgerung

In C ist die In-Class-Initialisierung von nicht konstanten statischen Mitgliedern verboten, da beim Initialisieren statischer Variablen außerhalb Flexibilität erforderlich ist von Klassendeklarationen. Statische Const-Mitglieder können jedoch in Klassendeklarationen initialisiert werden. Statische Variablen werden in C nicht automatisch auf Null initialisiert; Ihre Anfangswerte müssen explizit definiert werden.

Das obige ist der detaillierte Inhalt vonWie kann ich statische Mitglieder in C richtig initialisieren?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage