Bonjour à tous,

j'ai trois choses:
1 structure S:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
typedef struct
{
int a,b;} S;
une classe Mere, dont le constructeur prend un paramètre de type S et qui comporte un membre de type S:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
class Mere:
{
public:
    Mere(S s){m_s = s};
    virtual ~Mere(){};
 
protected:
    S m_s;
};
et une classe Fille, qui nécessite un constructeur de recopie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Fille : public Mere
{
    Fille(S s);
    Fille(Fille &source); //le constructeur de recopie
    ~Fille();
};
 
// Fille.cpp :
Fille::Fille(S s) : Mere(s){}
 
Fille::Fille(Fille &source)
{
    m_s = source.m_s;
}
Et bien évidemment, ça ne marche pas. J'obtiens l'erreur suivante:
error C2512: 'Mere' : no appropriate default constructor available

Il y a quelque chose qui m'échappe concernant ces constructeurs par défaut et de recopie. Pourquoi ici il me demande un constructeur par defaut pour ma classe Mere? Pourquoi en a-t-il besoin?