Bonjour,
J'ai un problème de conception au niveau des templates et du polymorphisme. Je vais essayer d'expliquer le plus simplement mon problème et mes tentatives de résolution.
Tout d'abord j'ai une classe extractor :
Jusque là, rien de bien compliqué. Du coup j'ai également ces deux classes de dumper :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
Tout va bien sauf que le choix d'un dumper ou d'un autre dépend d'une variable booléenne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dans ce cas zut, il faut faire hériter extractor d'une classe de base, pour pouvoir manipuler extractor<my_dumper> et extractor<no_dumper> d'une manière uniforme...
Ce que je fais, donc je crée extractor_base, ça compile et évidemment je n'ai pas déclaré mes méthodes virtual donc ce sont celles de extractor_base qui sont appelées et rien ne se passe parce qu'elles sont vides...
Si je les déclare virtual, et bien on ne peut pas car c'est des méthodes templates...
Du coup j'ai pensé a déplacé la virtualité du côté de dumper qui hérite de dumper_base. C'est déjà plus logique mais on a fait que déplacer le problème...
Pour le dumper, je ne peux pas envisager le polymorphisme statique vu qu'il faut un fichier donné à l'exécution.
Par contre, on peut éventuellement choisir le type d'extractor statiquement en fonction d'un const boolean.
Quelle est l'idiome à utiliser, ou quelle partie du design dois-je revoir ?
Merci d'avance.

 

 
		
		 
         
 

 
			
			

 
			 
   


 Polymorphisme et méthodes template: problème de conception
 Polymorphisme et méthodes template: problème de conception
				 Répondre avec citation
  Répondre avec citation
Partager