C++指向函数的指针,初学者问题

Bob*_*ond 19 c++ pointers function

我想问一下C++中的指针

我有一些简单的代码:

int add(int a, int b){
 return a+b;
}

int runner(int x,int y, int (*functocall)(int, int)){
 return (*functocall)(x,y);
}
Run Code Online (Sandbox Code Playgroud)

现在,假设我使用这种方式调用这些函数:

cout<<runner(2,5,&add);
Run Code Online (Sandbox Code Playgroud)

或者可能

cout<<runner(2,5,add);
Run Code Online (Sandbox Code Playgroud)

有什么不同吗?因为当我尝试时,结果是相同的,没有错误.

非常感谢

Kir*_*sky 10

根据C++标准(4.3/1),函数将隐式地转换为指针.没有区别.但是,此转换从不适用于非静态成员函数.对于他们你应该明确写&.


Joh*_*don 0

我相信第二个调用会自动解析为编译器中的第一个调用......