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!