Je souhaite écrire une fonction qui utilise la valeur de retour d'une fonction double
mais/et je souhaite choisir cette double fonction lors de l'appel de la fonction. Mon idée est la suivante:Appel funtion flexible avec void * et void **
#include <iostream>
double linea(double a, double b, double x);
double parabola(double a, double b, double c, double x);
void konjgrad(double (*function)(void** params), void** params);
double linea(double a, double b, double x){
return a*x+b;
}
double parabola(double a, double b, double c, double x){
return a*x*x+b*x+c;
}
void konjgrad(double (*function)(void** params), void** params){
double d;
d=function(params);
std::cout<<d<<std::endl;
}
int main(){
konjgrad(linea(1.6,5.1,2.6));
konjgrad(parabola(2.4,3.1,4,2.6));
return 0;
}
Mais je suis resté dans le labyrinthe des pointeurs. Quelqu'un at-il une idée, comment résoudre le problème?
Ne pas balises de spam. – StoryTeller
Quoi qu'il en soit. Les solutions possibles vont de l'utilisation d'un modèle à l'effacement de type via 'std :: function'. Vous pouvez choisir celui que vous trouvez plus attrayant à vos besoins. – StoryTeller
konjgrad (linéaires (1,6,5,1,2,6)); - vous ne passez pas un pointeur sur une fonction que vous appelez simplement la fonction et en lui transmettant le résultat – xaxxon