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:
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;
}
Dans B:
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;
}
Est-ce une bonne manière de faire ? Puis-je faire pareil pour l'opérateur = et le constructeur de recopie ?