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

Wie initialisiert man statische String-Variablen in C-Klassen richtig?

Susan Sarandon
Freigeben: 2024-12-08 17:45:12
Original
565 Leute haben es durchsucht

How to Properly Initialize Static String Variables in C   Classes?

Statische Zeichenfolgen in C-Klassen initialisieren

Bei der Deklaration von Mitgliedsfunktionen und Variablen innerhalb einer Klasse sind Umfang und Zugänglichkeit wichtige Aspekte. Falls Sie auf eine Situation stoßen, in der einige Mitgliedsfunktionen nicht direkt auf Klassenobjekte zugreifen und Sie beschließen, sie statisch zu machen, müssen Sie möglicherweise auch die Deklarationen der Variablen ändern, auf die sie zugreifen.

Problem: Initialisierung Statische String-Variablen

Wenn Sie String-Variablen wie die folgenden in einer Klasse haben:

string RE_ANY = "([^\n]*)";
string RE_ANY_RELUCTANT = "([^\n]*?)";
Nach dem Login kopieren

Erstellen Sie sie Statische Konstantvariablen stellen sicher, dass sie unverändert bleiben, können jedoch zu Problemen bei der Initialisierung führen. Der Compiler beschwert sich möglicherweise darüber, dass statische konstante Integralvariablen nur innerhalb einer Klasse initialisiert werden können.

Lösung: Externe Initialisierung

Um dieses Problem zu umgehen, können Sie diese statischen Zeichenfolgenvariablen initialisieren außerhalb der Klasse in einer Quelldatei. Zum Beispiel:

// Within the class
class Thing {
    static string RE_ANY;
    static string RE_ANY_RELUCTANT;
};

// In a source file
string Thing::RE_ANY = "([^\n]*)";
string Thing::RE_ANY_RELUCTANT = "([^\n]*?)";
Nach dem Login kopieren

Achtung: Unterscheidung zwischen statischen und konstanten Funktionen

Es ist wichtig zu beachten, dass Sie die Mitgliedsfunktionen, die auf diese Zeichenfolgen zugreifen, nicht statisch machen sollten, da sie Sie müssen weiterhin auf Klassenmitglieder zugreifen. Erwägen Sie stattdessen, sie zu konstanten Funktionen zu machen, was verhindert, dass sie Klassenmitglieder ändern. Dadurch wird die erforderliche Verbindung zwischen Funktionen und Klassenobjekten aufrechterhalten und gleichzeitig die Unveränderlichkeit gewährleistet.

Das obige ist der detaillierte Inhalt vonWie initialisiert man statische String-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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage