内部に名前のない構造の構造があります。私は全体の構造体を初期化したい、それはクラス初期化子リストのメンバ構造体です。C++クラスのイニシャライザリストで名前なし構造体を持つメンバstructを初期化するにはどうすればよいですか?
struct Foo {
int z;
struct {
double upper;
double lower;
} x, y;
};
class Bar {
Bar();
Foo foo;
};
これを行うことはできますか?
また、この構造体は、初期化構文が一様でないコンストラクタを提供する「古い方法」で初期化できますか?
struct Foo {
Foo() : z(2), x(/*?*/), y(/*?*/) {}
Foo() : z(2), x.lower(2) {} // doesn't compile
int z;
struct {
double upper;
double lower;
} x, y;
};
確か:
は、あなたのように何かを試してみました。あなたは試しましたか?どのように失敗しましたか? – Rakete1111
内部構造体定義は**名前のない構造体**です。**匿名構造体はわずかに異なります。ここの違いを参照してください:https://stackoverflow.com/a/14248127/8051589。 –
名前のないstructを匿名で混乱させてしまったことをお詫び申し上げます。私は、新しいC++ 11の統一構文を認識していませんでした。中括弧を使わないで初期化に関する質問を改善しました。 –