C のクラス初期化子で定数配列を初期化する
C で、クラスの初期化子リスト内の定数配列を初期化するには、少し異なる方法が必要です。他のメンバー変数を初期化するよりもアプローチが簡単です。定数配列がインスタンス固有の値を持つことになるケースを見てみましょう。
次のクラスについて考えてみましょう:
<code class="cpp">class a { public: const int b[2]; };</code>
コンストラクター初期化リスト内の特定の値で b を初期化するには、次を使用します。次の構文:
<code class="cpp">a::a() : b{2, 3} { // Other initialization stuff }</code>
このアプローチは、C 11 の中括弧で囲まれた初期化子リスト構文に依存しています。これにより、クラス初期化子内で定数配列を初期化できます。以下に例を示します。
<code class="cpp">struct a { const int b[2]; // Constructor a() : b{2, 3} {} }; int main() { a a; }</code>
この例では、 a の各インスタンスは、指定された値を持つ一意の b 配列を持ちます。この手法は C 98 以前のバージョンでは使用できないことに注意してください。
以上がC のクラス初期化子で定数配列を初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。