Appel récursif au constructeur : double erreur
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 :
Code:
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 code n'a même pas compilé, j'ai donc modifié le code comme ceci :
Code:
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;
}
}
}; |
Ce programme compile sans problème, mais si l'utilisateur entre 0, je récupère un mauvais MU (MU = 200895864).
J'ai donc deux questions :
-Pourquoi le 1e code ne compile pas ?
-Pourquoi le second me renvoie un mauvais MU ?
Merci d'avance !