Bonjour,
Si j'ai bien compris, on peux maintenant initialiser tous les membres d'une structure à 0 en utilisant des accolades vide
Seulement ce n'est pas ce qui se passe dans ce code sous visual 2013
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Foo bar; bar = {};
Sur la struct B, cela initialise toute la mémoire par des valeurs 8bits de valeurs 204.
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
28
29
30 struct A { unsigned char val; }; struct B : public A { }; struct C { A a; }; int main (int argc, char* argv[]) { B b; C c; b.val = 1; b = {};//val = 204 <= pourquoi??? c.a.val = 1; c = {};//a.val = 0 <= OK return 0; }
Je ne comprend pas pourquoi, la structure B ne se met pas à zéro.
Si quelqu'un as une idée.
merci
Yan
Partager