Heim > Backend-Entwicklung > C++ > Wie initialisiere ich private statische Datenelemente in C ohne statische Konstruktoren?

Wie initialisiere ich private statische Datenelemente in C ohne statische Konstruktoren?

Patricia Arquette
Freigeben: 2024-11-10 18:06:02
Original
433 Leute haben es durchsucht

How to Initialize Private Static Data Members in C   Without Static Constructors?

Initialisierung privater statischer Datenelemente: Alternative zu statischen Konstruktoren

Es kommt häufig vor, dass in einer Klasse private statische Datenelemente benötigt werden , ähnlich dem Java- oder C#-Konzept statischer Konstruktoren. C bietet jedoch keinen expliziten Mechanismus für statische Konstruktoren.

Um dieses Problem zu beheben, bietet C einen alternativen Ansatz. Anstatt statische Datenelemente innerhalb der Klasse zu deklarieren, erstellen Sie eine separate gewöhnliche Klasse, um die statischen Daten zu speichern. Deklarieren Sie eine statische Instanz dieser gewöhnlichen Klasse innerhalb der gewünschten Klasse.

Zum Beispiel:

class StaticStuff
{
    std::vector<char> letters_;

public:
    StaticStuff()
    {
        for (char c = 'a'; c <= 'z'; c++)
            letters_.push_back(c);
    }

    // Provide a method to access letters_
};

class Elsewhere
{
    static StaticStuff staticStuff; // Static instance runs once
};
Nach dem Login kopieren

Mit dieser Technik werden die statischen Daten einmal während der Programmausführung initialisiert und können abgerufen werden während der gesamten Laufzeit des Programms. Dieser Ansatz dient als praktikable Alternative zu statischen Konstruktoren in C.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich private statische Datenelemente in C ohne statische Konstruktoren?. 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