【发布时间】:2016-09-23 23:49:05
【问题描述】:
我正在尝试创建一个程序来对两个限制之间的函数进行数值积分。我创建了一个最小示例(其中“整数”始终为 1.0)来说明我得到的错误。下面的代码尝试使用一个参数是两个双精度的函数和一个从双精度到双精度的函数:
#include <iostream>
#include <math.h>
double cons(double a, double b, double c(double d))
{
return 1.0;
}
double f(double x)
{
return x*x;
}
int main()
{
double x;
double I = cons(0, 1, f(x));
std::cout << I << "";
}
这会导致cpp.sh 出现错误:
14:31:错误:无法将参数 '3' 转换为 'double' 到 'double ()(double)' 到 'double cons(double, double, double ()(double) )'
显然,双精度函数和双值函数之间的区别在这里引起了问题。我怎样才能让它工作?
【问题讨论】:
-
你试过
double I = cons(0, 1, f);吗?