[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.

Poster un commentaire
Grana
Grana
9 ans

class Fille : public Mere
{
Fille::Fille()
{
this.fonctionDeLaMere();
}
};

le this n'est pas obligatoire, mais très utile à la lecture du code

Commentaire supprimé.

Wig0
Wig0
9 ans

class Fille : public Mere {

};

class Mere {
maSuperFonction(){
cout << "tasoeur";
}
};


int main(){
Fille maPetiteFille;
maPetiteFille.maSuperFonction();
}

Grana
Grana
9 ans

maPetiteFille = null dans ton exemple. Fille maPetiteFille = new Fille();

Mysteri0n
Mysteri0n
9 ans


@Wig0:
Au final ça fonctionne comme les structures en C ?

Grana
Grana
9 ans

oui et non, puisque tu as des fonctions, tu peux gérer des événements etc...

Mysteri0n
Mysteri0n
9 ans

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

Grana
Grana
9 ans

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

Mysteri0n
Mysteri0n
9 ans

Oui mais pourtant je l'avais crée il était de cette manière là:
Mere::Mere(std::string &_name, int _i)

Grana
Grana
9 ans

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.

Spacebite
Spacebite
9 ans

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

Anli
Anli
9 ans

Pourquoi il y a de la paille?

Mysteri0n
Mysteri0n
9 ans

Je comprend pas la blague, désolé

Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

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.