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 : 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 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
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 !