错误C2664:无法将参数1从'int'转换为'int(__ cdecl*)(int)'

tuk*_*tuk 2 c++ parameters function c2664

将函数作为另一个函数的参数传递时遇到一些麻烦......

错误:错误1错误C2664:'wrapper':无法将参数1从'int'转换为'int(__ cdecl*)(int)'

int inc( int n )
{
    return n + 1 ;
}

int dec( int n )
{
    return n - 1 ;
}

int wrapper(   int i, int func(int)   )
{
    return func( i ) ;
}   


int main(){

    int a = 0 ;

    a = wrapper(  3, inc( 3 )  ) ;

    return 0 ;

}
Run Code Online (Sandbox Code Playgroud)

Mar*_*k B 5

您将函数调用的结果传递inc(3)给它wrapper,而不是它所期望的函数指针.

a = wrapper(3, &inc) ;