Héritage et simplification d'écriture
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 :
Code:
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]
}
} |
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
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