在C++中,回调函数就是通过一个函数指针调用的函数,如果你把函数的指针(地址)作为参数传递给另一个函数,党这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
回调函数不是又该函数的实现直接调用,而是在特定的事件或条件发生时又另外的一方调用的,用于对该时间或条件进行相应。
回调函数注意点:
1.函数指针作为另一个函数参数
2.回调函数不是有函数实现方法直接调用
3.特定事件或条件发生由另一方调用
定义:
typedef void(*pFun)(int,int,double)
typedef定义了一个回调函数PFun,其返回类型是void,接受两个int类型和应该double类型的参数
例子:
#include <iostream>
using namespace std;
int sum(int num1, int num2)
{
return num1 + num2;
}
int sub(int num1, int num2)
{
return num1 - num2;
}
int mul(int num1, int num2)
{
return num1 * num2;
}
int _div(int num1, int num2)
{
return num1 / num2;
}
typedef int(*pFunc)(int a, int b);
int func10(int a,int b, pFunc func)
{
return func(a, b);
}
int main()
{
int a = 2,b=6;
int retSum = func10(a,b, &sum);
int retSub = func10(a, b,& sub);
int retMul = func10(a, b, &mul);
int retDiv = func10(a, b,& _div);
cout << "retSum = " << retSum << " retSub = " << retSub << endl;
cout << "retMul = " << retMul << " retDiv = " << retDiv << endl;
return 0;
}