Passage fonction en argument
Bonjour,
J'essaie de programmer une fonction qui prend en argument une autre fonction (réelle par exemple), et je n'arrive pas à voir comment faire pour utiliser ma fonction dans le main:
Je définis un type Fonction d'abord:
Code:
1 2
|
typedef double (* Fonction)(double); |
Je déclare une classe Inverse (disposant d'une méthode inverser permettant de calculer l'inverse d'une fonction à partir d'une fonction donnée en argument):
Code:
1 2 3 4 5 6 7 8
|
class Inverse{
public:
double Inverser ( Fonction f, double t);
}; |
Puis ensuite je déclare une fonction réelle, par exemple
Code:
1 2 3 4 5
|
double f(double s)
{
return -log(s)/s;
} |
Ensuite dans le main, j'écris
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
int main(){
Inverse R;
double Res;
Res= R.Inverser(&f, 2.0);
cout << Res<< endl;
system("PAUSE");
return 0;
} |
Je pense que le problème vient surement de l'utilisation des pointeurs mais je ne sais pas ce qu'il faut faire, si vous savez ce qu'il faut faire, je suis preneur.
Merci bcp.