ホームページ >バックエンド開発 >C++ >C でコンストラクターを使用してオブジェクトの配列を初期化する方法

C でコンストラクターを使用してオブジェクトの配列を初期化する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-09 05:23:02798ブラウズ

How to Initialize Arrays of Objects with Constructors in C  ?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。