Bonjour,
Dans l'idée, je souhaiterais faire un foncteur supporté par une abstraction afin de définir une classe dans laquelle, il me suffirait de donner des entrées, des sorties et des fonctions de transfert (entrée/sortie).
les entrées et les sorties, ça va. La fonction de transfert... un peu moins. J'ai tout d'abord eu l'idée de faire des foncteurs... mais comme ils auraient tous des noms différents (des types mêmes... struct mafonction{}...)c'est pas générique.
Je pourrais mettre un void* qui pointe sur ces fonctions comme ça :
...du moins il me semble.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 template<class T, class U> class Acteur { //private : vector<T> entrees; U sortie; void* fct_transfert; Acteur(vector<T>& IN, U OUT) {entrees=IN; sortie=OUT;} void Fait() { sortie=fct_transfert()(entrees); }
est-ce que ça vous paraît correct?
Sinon, j'avais pensé faire un polymorphisme, la fonction de base est héritée et la fonction Fait est personnalisée. Est-ce faisable et si oui, est-ce "mieux"?
Merci d'avance.
Partager