Bonjour à tous. J'aimerais connaitre la meilleur façon d'étendre une classe du type :
class Base (classe abstraite);
class Derived1 : public Base;
class Derived2 : public Base;
class Derived3 : public Base;
Le problème étant que j'aimerais créer créer une nouvelle classe, similaire à Base mais possédant une fonction virtuelle pure et définir l'implémentation de cette fonction virtuelle pure dans Derived1, Derived2 et Derived3.
Le problème : je dois créer cette nouvelle classe sans toucher au code de Base, Derived1, Derived2 et Derived3. De plus, il faudrait qu'à chaque extension de Base ma classe s'étende aussi sans y toucher. Et pour finir, il faudrait pouvoir rajouter des classes sans problème.
On pourrait imaginer un :
....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class MonBase : public Base { virtual bool f()=0; }; class MonDerived1 : virtual public MonBase, virtual public Derived1 { virtual bool f(){/*qqch*/} };
ce système fonctionnerais.
Cependant, sa me parait mettre beaucoup de code pour pas grand chose et l'héritage virtuelle ne me parait pas super.
Pour la syntaxe du virtuel, je m'en souvient plus très bien (c'est la première fois que cette possibilité est envisageable) mais si c'est la seule solution je ferais comme sa.
Merci.
Partager