Est il sur que le constructeur de _var1 est appellé après celui de _var2 ? C'est dans la norme?
La norme implique que les constructeurs sont appellés dans l'ordre de déclaration des membres dans le source.
ca depend des compilateurs?
Le respect de la norme est toujours une grande question... Pour GCC, ça se passe bien.
Marc Boyer -- Si tu peux supporter d'entendre tes paroles Travesties par des gueux pour exiter des sots IF -- Rudyard Kipling
Fabien LE LEZ
On Thu, 23 Feb 2006 14:40:38 +0100, JBB :
const T2 _var1; const T3 _var2; }
A::A(T1 var): _var1(_var), _var2(_var1) {}
Est il sur que le constructeur de _var1 est appellé après celui de _var2 ?
La norme l'impose, et dans ce cas précis, ça m'étonnerait beaucoup qu'un compilateur ne respecte pas la norme. Et si jamais c'était le cas, change de compilo.
Attention, le constructeur de "_var1" est également appelé avant celui de "_var2" dans le code suivant, et certains compilos omettent d'afficher un warning :
A::A(T1 var): _var2(_var), _var1(_var) {}
On Thu, 23 Feb 2006 14:40:38 +0100, JBB <merci@pasdespam.fr>:
const T2 _var1;
const T3 _var2;
}
A::A(T1 var):
_var1(_var),
_var2(_var1)
{}
Est il sur que le constructeur de _var1 est appellé après celui de _var2 ?
La norme l'impose, et dans ce cas précis, ça m'étonnerait beaucoup
qu'un compilateur ne respecte pas la norme. Et si jamais c'était le
cas, change de compilo.
Attention, le constructeur de "_var1" est également appelé avant celui
de "_var2" dans le code suivant, et certains compilos omettent
d'afficher un warning :
Est il sur que le constructeur de _var1 est appellé après celui de _var2 ?
La norme l'impose, et dans ce cas précis, ça m'étonnerait beaucoup qu'un compilateur ne respecte pas la norme. Et si jamais c'était le cas, change de compilo.
Attention, le constructeur de "_var1" est également appelé avant celui de "_var2" dans le code suivant, et certains compilos omettent d'afficher un warning :