ホームページ > バックエンド開発 > C++ > C のメンバー初期化子リストで配列を初期化する方法

C のメンバー初期化子リストで配列を初期化する方法

Patricia Arquette
リリース: 2024-11-13 11:52:02
オリジナル
701 人が閲覧しました

How to Initialize Arrays in Member Initializer Lists in C  ?

配列メンバーの初期化リスト

を使用してメンバー初期化リスト内の配列を初期化しようとしたため、提供されたコード スニペットはコンパイルに失敗します。次の構文:

`

C() : arr({1,2,3}) <br>{}<br>// <br>C() もコンパイルされません: arr{1,2,3} <br>{}
`

これは、C 03 の配列は代入演算子でのみ初期化できるためです。 int arr[3] = {1,3,4}.

解決策

構造体の使用:
提供されたコードは次のことができます。この問題は、次のように構造体を使用して配列をラップし、コンストラクターで初期化することで修正できます。

`

 int arr[3];<br> ArrayWrapper() : arr{1,2, 3} {}<br>};<br>
`

C 11 リスト初期化の使用:
C 11 では、リスト初期化を使用して初期化できます。メンバー初期化子リスト内の配列:

`

 int arr[3];
ArrayWrapper() : arr{1, 2, 3} {}
};
< ;/pre>`

標準への準拠:

この動作は C 03 標準では明示的に対処されていませんが、集合体の初期化では次の規則が必要になるという当然の帰結です。代入演算子を使用します。

C 11 明確化:
C 11 では、リストの初期化を使用してメンバー初期化子リスト内の配列を初期化することが明示的に許可されています。

以上がC のメンバー初期化子リストで配列を初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート