函数指针的好处主要是实现函数回调
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
列子
#include<iostream>
using namespace std;
int compute(int x,int y,int(*function)(int,int))
{
return function(x,y);
}
int sum(int x,int y)
{
return x+y;
}
int max(int x ,int y)
{
return (x>y?x:y);
}
int main(){
cout<<"compute(5,3,max):"<<compute(5,3,max)<<endl;
cout<<"compute(5,3,sum):"<<compute(5,3,sum)<<endl;
}
输出
很容易发现能用同一个函数名实现不同功能