Bonjour,
Il était difficile de faire tenir l'étendue du problème dans le titre, aussi il n'est pas forcément très bien choisi (mais vous en jugerez après la lecture de la question). J'ai une hiérarchie de classe sur 3 niveaux, et je voudrais que la dernière hérite publiquement de la première, mais "protégément" (o_O) de la seconde. En gros :
Évidemment ce serait trop beau si ça marchait tel quel (même avec class B : virtual public A; ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 class A; class B : public A; class C : protected B, public A;
Le problème est épineux puisque la classe C a un comportement vraiment similaire à B (avec des données membres en plus). En revanche, l'utilisateur ne devrait pas pouvoir modifier les données de B via C..
Alors, est-ce seulement possible de faire ça en C++ ?
D'avance merci.
PS: en dernier recours, je pourrais masquer les méthodes indésirables de B en private dans C, mais bon.. bof.
Partager