Merci beaucoup je vais jeter un oeuil à tout ça ;)
Version imprimable
Merci beaucoup je vais jeter un oeuil à tout ça ;)
Bon j'ai un peu étudié la chose mais je ne vois toujours pas comment résoudre mon problème je suis peut-être un peu dur de la feuille ^o)
Mon idée était la suivante à l'époque ou je n'avais pas de calque templatre je procédais ainsi :
et ainsi pour créer un négatif par exemple je fesais :Code:
1
2
3
4
5
6
7
8 class Filtre { public : Filtre(); virtual ~Filtre(); virtual void apply(Calque* c) = 0; };
mais depuis que ma classe calque est en template je voudrais pouvoir faire des choses du genreCode:
1
2
3
4
5
6
7 class Negatif : public Filtre { public : ...constructeur destructeur.... void apply(Calque* c); };
Code:
1
2
3
4
5
6
7
8
9 class Filtre { public : Filtre(); virtual ~Filtre(); template<class T> virtual void apply(Calque<T>* c) = 0; };
Code:
1
2
3
4
5
6
7
8 class Negatif : public Filtre { public : ...constructeur destructeur.... template<class T> void apply(Calque<T>* c); };
malheureusement cela ne compile pas .... car évidemment je suppose que la détermination des parametres template ne peut être faite qu'à la compilation il ne peut donc pas accepter une méthode virtuelle template puisqu'il ne pourra pas la vérifier.... bien que ce ne serait peut-être pas impossible....
voila peut-etre que avec ce bout de code vous pourrez un peu mieux m'orienter ou alors m'expliquer le principe des foncteurs de boost parce que je n'ai aps vui en quoi ils pourront résoudre mon problème...
Merci d'avance @++
Seb
Tu passes d'un pointeur à un objet passé par valeur ? (et donc copié)
Et là, tu as une fonction membre virtuelle template. Ce n'est pas possible.
Non mais justement .... les deux premières classes sont celle que j'ai actuellement et les deux suivante sont celle que je "voudrais" pouvoir avoir ... ou même simuler en changeant complètement de méthode ....
Si c'est possible ..... mais il me semble que mon problème ne parait pas si singulier que ça.....donc j'ose espérer qu'il existe des solutions !!!
@++
Seb
ps : effectivement j'avais oublié le pointeur dans la seconde classe c'est corrigé
En fait je viens de me rendre compte que Jen Marc Bouquet avait parlé d'un pattern visiteur et je n'avais pas fais attention et c'est effectivement exactement ce dont je parle depuis le début ... malheureusement à le FAC on ne nous apprend pas les choses importantes commes les patterns classiques ....
Toujours est-il que j'ai l'impression cependant qu'il est recommangé partout de redéfinir les methodes avec autan de signature que de type d'objet visés... je pensais qu'il serait possible de généraliser tout ca en utilisant un template mais aparemment pas .... donc je vous remercie pour tout votre aide je crois que je vais m'inspirer de ce pattern qui va faire mon bonheur pour mon projet !!!
merci encore @++
Seb