donc
m_c sera initilaiser avant m_b ?? et ne va donc pas faire correctement l'initialisation de A?Code:
1
2
3
4
5
6
7
8
9
10 class A { public: A(int a,B b): m_a(a),m_b(b),m_c(m_b) {} private: C m_c; B m_b; int m_a; }
Version imprimable
là tu fait compliqué pour faire simple :
Code:
1
2
3
4
5
6
7
8 int tab[] = {1,2,3,4,5,6,7,8,9}; int somme = 0; for(int i = 0; i < 9, i++) { somme += tab[i]; }
ou si tu veux faitre plus complexe puisque apparement tu aime ça:
Code:
1
2
3
4
5
6
7
8 int tab[] = {1,2,3,4,5,6,7,8,9}; int somme = 0; int i = 0; while(i < 9) { somme += tab[i++]; }
Je doute que GCC (même sous alpha) ai un comportement différent de GCC sous windows et de GCC sous linux (Alpha ? c Quoi ça un système de galaxie ? on parle de PC sous windows et linux (voire peut être mac OS X))
Tu connais beaucoup de personnes qui disposent d'un serveur AIX ? vu le prix de la licence ça m'étonnerais que quelqu'un qui apprend ai les moyens de se la payer !
alors bravo t'a sorti un exemple que je peux pas mettre en doute donc ce que je disait est toujours valable comme le commun du mortel chez les développeurs ne pourrons jamais se payer AIX c'est pas la peine d'en parler et si il y font référence alors la tu pourra sortir les cas exceptionnels qui seront alors pertinents. en attendant tu laisse les jeunes apprendre le cas général : en apprentissage le détail est incompréhensible et le cas général est inexploitable donc il faut apprendre a faire des compromis.
Tu prends un compte sur freeshell.org et tu testes toi-meme.Citation:
Je doute que GCC (même sous alpha) ai un comportement différent de GCC sous windows et de GCC sous linux
AIX c'est toi qui l'a cite le premier: http://www.developpez.net/forums/sho...7&postcount=35, ce qui m'a incite a aller voir ce qui se passait dessus.
On est sur un débat où les gens postent sont professionels (en tout cas, non débutant) (voir la règle des débats en général : ici). Ceci n'est pas un cours, je ne vois pas pourquoi tu dis ça.
Le problème, c'est qu'il ne faut pas tenter de déduire la norme de l'expérience : C'est là que les comportements indéfinis interviennent.
Expérience de ce code:
Code:
1
2
3
4
5
6
7
8
9
10 void TestArray2(void) { int tab[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; size_t i = 0; int res1 = tab[++i] + tab[++i] + tab[++i] + tab[++i] + tab[++i]; i = 0; int res2 = tab[i++] + tab[i++] + tab[i++] + tab[i++] + tab[i++]; printf("resultat 1: %d - resultat 2: %d\n", res1, res2); }
- Sous Visual Studio 2005, ça donne ceci:
Code:resultat 1: 30 - resultat 2: 5
- Sur un autre compilo, ça donnerait sûrement autre chose.
- Edit: rod vient d'obtenir 21 et 5 sur gcc 3.4.2.
- Sur une DS9K, ça peut lancer une attaque nucléaire sur le Mouchenculstan septentrional.
Et ce, avec la bénédiction de la norme.
avec gcc 3.4.2, j'obtiens 21 - 5
:koi:
Mongaulois : Oui.