Salut !
Je me pose une question, dont la réponse me semblait évident mais faute de trouver de source m'inquiète.
Prenons le code suivant:
Est-ce que ce code est sûr ?
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
18
19
20
21
22
23
24
25
26
27 class A { public: A() {} }; class B { public: B( A& a ) : _A( a ) {} A& _A; }; class AB { public: AB() : _B( _A ), // ici l'ordre est inversé, c'est fait exprès _A() { } A _A; B _B; };
Est-ce qu'on peut affirmer que _A sera initialisé avant _B et que donc _B._A ne référencera pas une zone mémoire non alloué, ou est-ce que le comportement est indéfini par la norme ?
Partager