Heim  >  Artikel  >  Backend-Entwicklung  >  Wie initialisiere ich ein Konstantenarray in einem Klasseninitialisierer in C?

Wie initialisiere ich ein Konstantenarray in einem Klasseninitialisierer in C?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-06 03:44:02326Durchsuche

How to Initialize a Constant Array in a Class Initializer in C  ?

Initialisieren eines Konstantenarrays in einem Klasseninitialisierer in C

In C erfordert das Initialisieren eines Konstantenarrays innerhalb der Initialisiererliste einer Klasse etwas anderes Ansatz als das Initialisieren anderer Mitgliedsvariablen. Lassen Sie uns den Fall untersuchen, in dem das konstante Array instanzspezifische Werte haben soll.

Betrachten Sie die folgende Klasse:

<code class="cpp">class a {
public:
    const int b[2];
};</code>

Um b mit bestimmten Werten in der Konstruktor-Initialisierungsliste zu initialisieren, verwenden Sie die folgende Syntax:

<code class="cpp">a::a() : b{2, 3} {
    // Other initialization stuff
}</code>

Dieser Ansatz basiert auf der in Klammern eingeschlossenen Initialisierungslistensyntax von C 11, die es Ihnen ermöglicht, ein konstantes Array innerhalb des Klasseninitialisierers zu initialisieren. Hier ist ein Beispiel:

<code class="cpp">struct a {
    const int b[2];

    // Constructor
    a() : b{2, 3} {}
};

int main() {
    a a;
}</code>

In diesem Beispiel verfügt jede Instanz von a über ein eindeutiges b-Array mit den angegebenen Werten. Beachten Sie, dass diese Technik in C 98 oder früheren Versionen nicht verfügbar ist.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich ein Konstantenarray in einem Klasseninitialisierer in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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