Heim > Artikel > Backend-Entwicklung > Wie initialisiere ich ein Const-Array in einem Klasseninitialisierer in C?
Initialisieren eines Const-Arrays in einem Klasseninitialisierer in C
In C kann das Initialisieren eines Const-Arrays in der Initialisiererliste einer Klasse erscheinen wie eine Herausforderung aufgrund der Beschränkung des const-Schlüsselworts auf funktionsinterne Änderungen. Diese Aufgabe wird jedoch mit der Einführung von C 11 ermöglicht.
Zuvor war die Initialisierung eines const-Arrays im Konstruktorkörper nicht möglich. Versuche, dies zu tun, wie im bereitgestellten Beispielcode, führten zu Fehlern. Dies lag daran, dass const-Variablen nach der Initialisierung nicht mehr geändert werden können.
In C 11 ergab sich jedoch eine Lösung: das Initialisieren des Arrays innerhalb der Initialisierungsliste des Konstruktors. Dieser Ansatz ermöglicht es uns, die Elemente des Arrays direkt anzugeben:
<code class="cpp">struct a { const int b[2]; // other stuff follows // Here's the constructor a() : b{2, 3} { // other constructor work } };</code>
In diesem Beispiel wird das Array b mit den Elementen {2, 3} initialisiert. Diese Initialisierung stellt sicher, dass die Werte von b während der gesamten Lebensdauer des Objekts konstant bleiben.
Es ist wichtig zu beachten, dass verschiedene Instanzen der Klasse a unterschiedliche Werte für b haben können. Die Werte für eine bestimmte Instanz bleiben jedoch konstant, nachdem der Konstruktor ausgeführt wurde. Dieses Verhalten unterscheidet diese Arrays von nicht-konstanten Arrays, die während der Lebensdauer des Objekts geändert werden können.
Das obige ist der detaillierte Inhalt vonWie initialisiere ich ein Const-Array in einem Klasseninitialisierer in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!