如何用一个数字乘以一个通过引用传递的函数
How to multiply a number by a function passed by reference
在我的main方法和所有其他函数上面有以下代码:
typedef double (*FUNC)(double);
double integrate(FUNC f, double a, double b){
double sum = 0;
for(int i=a; i<=b; i++){
sum = sum + (f * .0001); //error occurs here, red squiggly line under "f"
}
return sum;
}
在Microsoft Visual Studio c++编译器中,我得到一个错误:表达式必须具有算术或枚举类型。我在上面的评论中指出了错误的来源。有人能给我解释一下为什么我有这个错误,我如何解决这个错误?
我认为您正在尝试将f(x)
的x
值从a
集成到b
?
在这种情况下,你的代码是非常不正确的。
您的0.0001似乎表明您实际上试图使用10000步,在这种情况下,您将使用以下内容:
const int steps = 10000;
double x = a;
double delta = (b - a) / steps;
for(int i = 0; i < steps; i++, x += delta)
然后计算使用调用f(x)
来调用函数指针,并将其相加。
试着用这个代替
sum = sum + f(.0001);
将函数指针乘以分数就不太好了
相关文章:
- C++有什么方法可以在既不调用函数模板也不提供其模板参数的情况下引用函数模板?
- 无法将右值引用函数与 GCC 匹配
- C ++引用函数参数似乎包含原始对象的副本,而不是充当"real reference"
- 通过引用函数传递指针参数是什么意思?
- 常量引用函数参数的地址何时唯一?
- 我想了解为什么在这个例子中使用引用函数?或者引用在c++函数中的重要性
- C++ 通过引用函数传递数组,但内容保持不变
- 用数组或指针引用函数?
- 引用函数如何"int &foo();"工作?
- 常量引用函数参数:是否可以禁止临时对象?
- 计算在代码中引用函数的次数
- <initializer_list> 引用函数
- 字符串引用(函数)的差异
- 在类中引用函数时的"No Matching Function for Call"
- 无法通过引用函数"calcValues"中"firstNum"和"secondNum"变量来更改值
- 尝试引用已删除的函数(不引用函数)
- 引用函数指针
- 引用函数按值和自动返回
- 为什么我们可以取消引用函数指针
- 通过引用函数传递值的目的是什么