我正在尝试调整我编写的一些数学代码以允许任意函数,但我似乎只能通过在编译时预先定义它们来做到这一点,这看起来很笨拙。我目前正在使用函数指针,但据我所知,函子会出现同样的问题。为了提供一个简单的例子,对于前向差分,使用的代码是:
double xsquared(double x) {
return x*x;
}
double expx(double x) {
return exp(x);
}
double forward(double x, double h, double (*af)(double)) {
double answer = (af(x+h)-af(x))/h;
return answer;
}
Run Code Online (Sandbox Code Playgroud)
其中前两个函数中的任何一个都可以作为第三个参数传递。然而,我想做的是传递用户输入(在有效的 C++ 中),而不必事先设置函数。任何帮助将不胜感激!