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

Cette box est archivées elle ne peut plus être commentée.
Poster un commentaire
Grana
Grana
10 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
10 ans

class Fille : public Mere {

};

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


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

Grana
Grana
10 ans

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

Mysteri0n
Mysteri0n
10 ans


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

Grana
Grana
10 ans

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

Mysteri0n
Mysteri0n
10 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
10 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
10 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
10 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
10 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
10 ans

Pourquoi il y a de la paille?

Mysteri0n
Mysteri0n
10 ans

Je comprend pas la blague, désolé

NSFW
Webcams adultes gratuites

[NSFW]Webcams adultes gratuites
go.xlirdr.com?campai - En direct

Choualbox