Bonjour,
je m'amuse comme un petit fou en découvrant l'héritage. Rien à redire c'est génial, vive le cpp.
Mais avant de coder avec mes pieds, je viens demander des conseils.
Quand une classe B hérite de A. On peut dire que B est un A avec généralement des variables membres supplémentaires.
Comment gerer tout ceci dans le cadre des opérateurs. J'aimerais que par exemple dans mes opérateurs amis istream & ostream réutiliser ceux de la classe mère. J'ai essayé en utilisant une méthode propre à chaque classe qui est virtuelle. Dans le cas de B je force l'appel à A avant de continuer ce qui est seulement necessaire à B.
Dans A:
Dans B:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 virtual void affiche(ostream &s=cout); friend ostream& operator<<(ostream &s, A &a); void A::affiche(ostream &s) { s<<nom<<blabla<<blublu; } ostream& operator<<(ostream &s, A &a) { a.affiche(s); return s; }
Est-ce une bonne manière de faire ? Puis-je faire pareil pour l'opérateur = et le constructeur de recopie ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void affiche(ostream &s=cout); void B::affiche(ostream &s=cout) { A::affiche(s); s<<endl<<MembreDeBSeulement; }
Partager