クラスが次のように定義されているとします
class A {
//.....
};
そして今、私は2つのオブジェクトを作成しています
A a,b;
a
および はどのような順序でb
作成されますか? 標準で定義されていますか?
ベストアンサー1
8 つの宣言子 [dcl.decl] 3 から:
宣言内の各 init-declarator は、それ自体が宣言内にあるかのように個別に分析されます。
さらにこうも言う
複数の宣言子を持つ宣言は、通常、それぞれが 1 つの宣言子を持つ対応する宣言のシーケンスと同等です。つまり、 は
T D1, D2, ... Dn;
通常、 が decl-specifier-seq で、それぞれが init-declarator である と同等ですT D1; T D2; ... T Dn;
。T
宣言子Di
の 1 つによって導入された名前が decl-specifiers によって使用される型名を隠蔽する場合、例外が発生します。そのため、同じ decl-specifiers が後続の宣言で使用されても同じ意味を持ちません。
左から右に構築されていると言えます。