Bonjour,

Si j'ai bien compris, on peux maintenant initialiser tous les membres d'une structure à 0 en utilisant des accolades vide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Foo bar;
bar = {};
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
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;
}
Sur la struct B, cela initialise toute la mémoire par des valeurs 8bits de valeurs 204.

Je ne comprend pas pourquoi, la structure B ne se met pas à zéro.

Si quelqu'un as une idée.

merci
Yan