Bonjour à tous,
Je bloque sur un problème qui me dépasse pour le moment ! Le voici : je dois faire une interface pour travailler avec des algorithmes ayant le même but, mais des interfaces et des méthodes très différentes.
J'ai décidé de faire une interface générale pour ces algorithmes avec une classe virtuelle pure à hériter pour chaque type d'algorithme.
Le problème de ces algorithmes est qu'ils ont chacun un panel de paramètres qui n'ont rien à voir les uns avec les autres selon le type de l'algorithme.
J'aimerai donc que dans l'interface générale je puisse proposer une fonction afin de modifier le paramètre d'un algorithme, et donc, que selon le type d'algorithme et de paramètre à changer, la valeur ait un type en adéquation.
J'ai donc, par exemple, pour un type d'algorithme concret, que nous appellerons SD, implémenté cette interface :
on a donc une énumération avec les différents paramètres d'un algorithme de type SD, et une structure SDParamType qui "renvoie" le type de chaque paramètre.
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
21
22
23
24
25
26
27
28
29
30
31
32
33
Voici l'interface générale que j'essaye d'implémenter :
Seulement, g++ renvoies l'erreur suivante (correspondant à la méthode setParameter) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
Si je transforme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
en :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
évidemment ça compile, mais ça ne va pas. Je ne sais pas comment venir à bout de ce problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Merci !
Benjamin

 

 
		
		 
         
 

 
			
			


 
   


 Fonctions avec paramètres à types dynamiques
 Fonctions avec paramètres à types dynamiques
				 Répondre avec citation
  Répondre avec citation 
    Envoyé par benlaug
 Envoyé par benlaug
					
 . Dans <int a> a est une constante entière de type int, dans <typename T>, T est un type lui-même. Dans, <typename Parameters::ID id>, typename Parameters::ID est un type et id est le nom de la constante de ce type.
. Dans <int a> a est une constante entière de type int, dans <typename T>, T est un type lui-même. Dans, <typename Parameters::ID id>, typename Parameters::ID est un type et id est le nom de la constante de ce type.



 
  .
.
						
Partager