Bonjour,
J'ai commencé le C++ il y a peu et j'ai rencontré un petit problème en essayant d'appeler un constructeur en récursif :
Ce code n'a même pas compilé, j'ai donc modifié le code comme ceci :
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 class Sinus { int MU; public: Sinus(){MU=1;} Sinus(int mu){ if(mu==0){ int m; cout<<"Autre nombre"<<endl; cin>>m; Sinus(m); } else{ MU = mu; } } };
Ce programme compile sans problème, mais si l'utilisateur entre 0, je récupère un mauvais MU (MU = 200895864).
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 class Sinus { int MU; public: Sinus(){MU=1;} Sinus(int mu){ int m; if(mu==0){ cout<<"Autre nombre"<<endl; cin>>m; Sinus(m); } else{ MU = mu; } } };
J'ai donc deux questions :
-Pourquoi le 1e code ne compile pas ?
-Pourquoi le second me renvoie un mauvais MU ?
Merci d'avance !
Partager