A voir également:
- Héritage : cast ou non ?
- Que du fake formate héritage - Forum Consommation & Internet
- Cheick yvan formate héritage - Forum Java
- Maison héritage canapé avis - Forum Vos droits sur internet
- Achat d'un canapé sur showroomprive - Forum Consommation & Internet
- Arnaque canapé ✓ - Forum Vos droits sur internet
2 réponses
Je vois au moins deux manières de faire mieux.
1) Si la seule différence de ControlerB et ControlerC c'est d'embarquer un type de Model différent, on peut imaginer simplement avoir une seule classe Controler qui stocke un A* et se reposer sur le lien dynamique pour invoquer de manière appropriée les méthodes implémentées dans A, B ou C. Il faut juste que les méthodes de A soient virtual.
https://forums.commentcamarche.net/forum/affich-27621184-fonctions-virtuelles-en-c#p27622390
2) Une autre manière de faire consiste à ce que Controler soit une classe template qui prend en paramètre un model :
Bonne chance
1) Si la seule différence de ControlerB et ControlerC c'est d'embarquer un type de Model différent, on peut imaginer simplement avoir une seule classe Controler qui stocke un A* et se reposer sur le lien dynamique pour invoquer de manière appropriée les méthodes implémentées dans A, B ou C. Il faut juste que les méthodes de A soient virtual.
https://forums.commentcamarche.net/forum/affich-27621184-fonctions-virtuelles-en-c#p27622390
2) Une autre manière de faire consiste à ce que Controler soit une classe template qui prend en paramètre un model :
template <typename Tmodel> class Controler { protected: Tmodel * model; ... }; int main() { Controler<B> cb; ... return 0; }
Bonne chance