pas tout à fait :
lorsque tu entres dans le corps du constructeur, tous tes membres ont été créés, ce qui signifie en particulier que pour les membres dont le type est une classe, un constructeur par défaut a été appelé si tu n'as pas explicitement fourni une initialisation.
Un exemple pour éclaircir ces explications confuses :
Code :
- class A;
- class B
- {
- A membre;
- B (A a)
- {
- membre = a;
- }
- };
- class C
- {
- A membre;
- C (A a)
- : membre (a)
- { }
- };
|
lorsque tu construis un objet de type B, les opérations effectuées sont :
- initialisation de 'membre' par appel du constructeur par défaut de A
- recopie de 'a' dans 'membre'
Ici, tu fais donc un appel inutile au constructeur par défaut de A
lorsque tu construis un objet de type C, comme tu as précisé une initialisation pour 'membre', tu ne fais que l'opération voulue :
- initialisation de 'membre' par appel du constructeur par recopie de A
voila, j'espère que c'est un peu clair...
[edit] grillé...
---------------
TriScale innov