我正在尝试调整我编写的数学代码,以允许任意函数,但我似乎只能在编译时预定义它们,这似乎很笨拙。我目前正在使用函数指针,但据我所知,使用functor也会出现同样的问题。为了提供一个简单的例子,对于前向差分求导,使用的代码如下:
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;
}
在这里,第三个参数可以是前两个函数中的任意一个。然而,我想做的是传递用户输入(有效的C++代码),而不是事先设置函数。非常感谢您的帮助!