Hello,
J'ai remarqué ya quelques temps que gcc se plaignait lorsque l'ordre d'initialisation des attributs dans le constructeur était différent de l'ordre de déclaration des attributs dans la classe / struct.
Cela veut-il dire qu'un attribut déclaré avant un autre sera initialisé avant un autre, et pourra dont être utilisé pour initialisé un autre attribut ?
Un petit exemple pour mieux expliquer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 struct Foo { const int val; Foo(int v=42): val(v) { } Foo(const Foo& foo): val(foo.val) { } }; struct Bar { const Foo a; const Foo b; Bar(int val): a(val), b(a) // ok car a déclaré avant dans Bar ? // mais serait faux si b déclaré avant a dans la struct ? { } };
Partager