Bonjour à tous.
Je n'ai jamais utilisé de pointeur sur fonction ou de foncteur, seulement je vais en avoir besoin. J'ai lu que les foncteurs étaient bien plus rapides dans la plupart des cas, sauf que les pointeurs sur fonction ont l'air bien plus simple à implémenter et dans mon cas je ne sais pas si cela ferait une vraie différence au niveau du temps d'exécution.
J'ai une classe Ncomputation avec entre autres 3 fonctions membres
Dans une autre fonction membre j'ai besoin de choisir quelle fonction membre j'utilise en fonction d'un paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 double Ncomputation::f220(double a,double b,double c) const; double Ncomputation::f022(double a,double b,double c) const; double Ncomputation::f220(double a,double b,double c) const;
A première vue, je pensais utiliser :
Déjà est-ce que ma syntaxe d'utilisation d'un pointeur sur fonction est bonne ? Ensuite est-ce que l'utilisation de foncteur aurait un réel intérêt dans mon cas (notamment au niveau du gain de performances) ou absolument aucun (et si oui, pourquoi ?)).
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
16
17
18
19
20
21 double Ncomputation::calc(unsigned int axis) const { // Initialization double result=0.; double(*f)(double,double,double)=f220; // Select the function switch(axis) { case 1 : f=f022; break; case 2 : f=f202; break; case 3 : f=f220; break; default : f=f220; } // (Ici j'utilise f pour calculer le résultat) // (Ici j'utilise f pour calculer le résultat) // Return return result; }
Merci beaucoup![]()
Partager