Salut tout le monde
Je vous explique mon problème :
J'ai une classe de base B
puis je dérive trois classe de B -> D1, D2, et D3 (en héritage public)
Ensuite c'est la que pose le problème puisque je me retrouve avec plusieurs instaciations de chaque classe D1, D2, et D3.
Ainsi dans une autre classe Manager j'écris :
D1 * d1[10];
D2 * d2[10];
D3 * d3[10];
Donc D1 D2 et D3 sont dérivées de la classe de base B, mais mon souci c'est que j'ai plein de sous classe derivée de B (pas que comme dans cet exemple)
Ainsi pour pouvoir utiliser la fonction calculer() qui se trouve dans chaque D1 , D2 et D3, je dois écrire :
Donc voila si je veux rajouter encore 10 derivées de la classe B (de D1 à D30) il faut que je m'amuse a ecrire autant de fois ces lignes, ce qui est long est rend le code difficile a mettre a jour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 int i, j; for (i=1; i<=3; i++) // on parcourt les d1, d2 et d3 { for (j=0; j<10; j++) // on parcourt les 10 instanciations de chaque dx { switch (i) { case 1 : d1[j]->calculer(); break; case 2 : d2[j]->calculer(); break; case 3 : d3[j]->calculer(); break; } d1[i] } }
Connaissez-vous une méthode pour utiliser eventuellement la classe de base B pour écrire une seule fois la ligne mais utiliser la bonne fonction dans D
J'espere que vous m'ayez compris car c'est un peu dur a expliquer
Partager