所以我一直在尝试与此斗争几个小时。我对c ++比较陌生,但是我读到了函数指针,它看起来非常有用。本质上,我在下面尝试做的是将两个整数值传递给函数foo,然后将它乘以10.但是,我不断收到以下错误:“从'int'无效转换为'int(*)(int ,int)'[-fpermissive]“。
#include <iostream>
using namespace std;
int foo(int nX, int nY){
return nX*nY;
}
int multTen(int a, int b, int (*Fn)(int, int)){
return 10*Fn(a,b);
}
int main(){
cout << multTen(3,4,foo(3,4)) << endl;
}
非常感谢您在这方面的帮助。 :)
答案 0 :(得分:3)
cout << multTen(3,4,foo(3,4)) << endl;
// ^^^^^^^ calling function foo and it's return value is passed
// to multTen
问题是您使用mulTen
的返回值作为参数调用foo
,而不是将指针传递给它。
答案 1 :(得分:2)
你的意思是?
cout << multTen(3,4,foo) << endl;
答案 2 :(得分:2)
在foo上省略(3,4)。在您的代码示例中,您使用参数(3,4)调用foo函数并将返回值传递给multTen。