C : 配列のコンストラクター初期化子
C では、オブジェクトの配列を初期化するのが難しい場合があります。配列以外のシナリオでは、次のようなコンストラクター構文を利用できます:
struct Foo { Foo(int x) { /* ... */ } }; struct Bar { Foo foo; Bar() : foo(4) {} };
ただし、配列を扱うときに問題が発生します:
struct Foo { Foo(int x) { /* ... */ } }; struct Baz { Foo foo[3]; // Incorrect syntax Baz() : foo[0](4), foo[1](5), foo[2](6) {} };
残念ながら、C では (詳細が公開される前は)最近の言語の反復では)、コンストラクターを使用して配列メンバーを初期化する簡単な方法はありません。この制限は、配列メンバーのデフォルト コンストラクターの要件に起因しており、配列の初期化中に自動的に呼び出されます。その後、コンストラクター内の追加の初期化が続行されます。 STL 機能が欠如している組み込みシステムの場合、回避策の 1 つは、デフォルトのコンストラクターと、構築後に呼び出し可能な明示的な init() メソッドを使用して、初期化子の必要性を回避することです。
以上がC でコンストラクターを使用してオブジェクトの配列を初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。