constructeur de recopie et héritage
Bonjour à tous,
j'ai trois choses:
1 structure S:
Code:
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:
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:
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?