petite précision sur les foncteurs
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 :
Code:
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);
} |
...du moins il me semble.
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.