在C++中使用函数指针时出现无效的转换错误

问题描述:

因此,我一直在努力尝试并与之奋斗了几个小时。我相对比较新的C++,但我读了关于函数指针,它看起来很有用。基本上,我在下面试图做的是将两个整数值传递给函数foo,然后乘以10.但是,我不断收到以下错误:“从'int'无效转换为'int(*)(int ,int)'[-fpermissive]“。在C++中使用函数指针时出现无效的转换错误

#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; 
} 

您在这方面的善意帮助是非常感谢。 :)

cout << multTen(3,4,foo(3,4)) << endl; 
       // ^^^^^^^ calling function foo and it's return value is passed 
       // to multTen 

的问题是,您所呼叫的mulTenfoo的返回值作为参数,而不是传递一个指针。

您的意思是?

cout << multTen(3,4,foo) << endl; 

foo省略(3,4)。在您的代码示例中,您使用参数(3,4)调用foo函数并将返回值传递给multTen。