Bonjour, je cherche une solution pour résoudre un problème dans une bibliothèque C++ que je suis en train de concevoir. J'ai cherché du côté des Design Patterns et de la méta-programmation (Policies, traits, etc..), mais étant débutant je vais avoir besoin d'un aide extérieure.
Voici ce que je souhaite pouvoir réaliser,
j'ai une classe
Dans ma librairie un classifieur peut avoir 3 comportements différents: RANG, CLASSE, MESURE (c'est ce que je n'arrive pas à modéliser). Un classifieur permet de classifier les éléments d'une Base. Dans le cas du comportement CLASSE le classifieur doit disposer d'une fonction classifier comme celle qui est au dessus. Dans les deux autres cas la fonction classifieur doit être différente et retourner un tableau de tableaux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class Classifieur { ... virtual void classifier(Base & base) throw(ExceptionFormatBase) = 0; ... };
Par exemple générer un code comme celui-ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class Classifieur { ... virtual vector<vector<double>*>* classifier(Base & base) throw(ExceptionFormatBase) = 0; ... };
Aussi, j'ai de multiples classes dérivées de Classifieur, elle doivent hériter de cette fonction suivant le type RANG, CLASSE ou MESURE.
Bref, ce que je veux faire c'est pouvoir générer une fonction différente suivant les cas RANG, CLASSE et MESURE. Mais la classe doit évidemment rester un Classifieur, est-il possible de faire ceci à l'aide des templates ? Comment résoudre ce problème ?
Merci pour votre aide.
Bouba
Partager