[C++][novice voir noob] l'héritage et les fonctions
Bonjour,
Je voulais faire un petit programme pour m'entrainer en c++ et aborder la notion de l'héritage mais il se trouve que je suis bloqué et que j'ai surement pas du très bien comprendi la notion d'héritage.
Voilà mon problème, j'ai une classe fille et je voudrais utiliser les fonctions que sa mère qu'est ce que je doit faire pour ça ?
- J'ai pas le choix je dois recrée toute les fonctions ?
- faire un simple NomFille::FonctionMere() ?
j'ai essayé la deuxième méthode et le compileur me dit qu'aucun des attributs et des fonctions ne sont connus.
J'ai essayé de mettre tout la classe mère en protected: mais ça n'a rien changé j'ai toujours le droit à error: no ‘Fonction’ member function declared in class ‘Fille’.
Du coup j'ai essayé de faire comme j'ai fait pour mon constructeur fille c'est à dire
ClassFIlle::ClassFIlle() : CstMere(std::string a, int b)
mais je me suis fait dégager.
Du coup je solicite votre aide c'est surement tout simple et je suis peut être passé à coté de quelque chose mais là je bloque depuis pas mal de temps.
class Fille : public Mere
{
Fille::Fille()
{
this.fonctionDeLaMere();
}
};
le this n'est pas obligatoire, mais très utile à la lecture du code
class Fille : public Mere {
};
class Mere {
maSuperFonction(){
cout << "tasoeur";
}
};
int main(){
Fille maPetiteFille;
maPetiteFille.maSuperFonction();
}
Est-il normale que je recoive cette erreur
test.cpp: In constructor ‘Fille::Fille(const string&, int)’:
test.cpp:59:54: error: no matching function for call to ‘Mere::Mere()’
CstFille(std::string &_name, int _i)
Sinon dans l'idée je pense avoir compris et j'ai beaucoup moins d'erreur qu'avant merci de ton aide à toi et Wig0.
Edit: apparement en construisant un constructor de Mère vide ça à tout réglé, j'ai pas trop compris pourquoi
c est normal, le constructeur est obligatoire, c est la fonction qui est appelé quand tu crée un objet de la class. En général, on initialise toutes les variables dans le constructeur
Oui mais pourtant je l'avais crée il était de cette manière là:
Mere::Mere(std::string &_name, int _i)
ok, je comprends mieu. Une class peut avoir plusieurs constructeurs, mais il y a un constructeur qui est obligatoire, c est le constructeur par défaut, c est celui sans paramètres.
La différence entre les classes et les structures c'est que par défaut, les membres d'une structure sont publiques et ceux d'une classes sont privées
Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.
En accédant à ce site, tu acceptes nos conditions d'utilisation.