Bonjour,

Je souhaite avoir un avis sur la bonne pratique pour mettre en oeuvre le cas suivant, afin de rendre mon code plus générique. J'ai deux classes de courbe C1 et C2 qui sont des implémentations d'une classe C plus génériques (class C1 : public C). La longueur de la courbe est calculée à partir d'un ensemble de points de la courbe et la façon de faire ce calcul est identique que ce soit pour C1 ou C2.
D'un point de vue architecture, quelle est la meilleure pratique:
1/ option 1 : déclarer la fonction "Length()" virtuelle pure dans C et l'implémenter dans C1 et C2
2/ option 2 : déclarer et implémenter une fonction Length() dans C. Il faudrait cependant une fonction virtuelle pure (C::getPoint) qui permette d'obtenir un point de C1 (ou C2) pour effectuer le calcul de la longueur.

J'ai comme le sentiment que l'option 2, qui bien que plus générique à première vue (on n'implémente qu'une seule fois Length) me semble moins propre car il faut "chercher" les points dans C1 ou C2 qui héritent de C ...

La bonne pratique est peut-être une 3e option ...

Christian