一直觉得回调函数有点玄乎,今天静下心来好好地聊聊,其实回调函数的本质还是在函数A里调用函数B,那么和常见的调用函数B有什么区别呢?最大的区别在于将想要调用的函数参数化了,那么就可以在不同的场景下调用不同的函数。
#include <iostream>
typedef int (*pFunc)(int&,int&);
int func1(int& x,int& y)
{
return x+y;
}
int func2(int& x,int& y)
{
return x-y;
}
int func3(int& x,int& y)
{
return x*y;
}
int Func(int& x,int& y,pFunc p)
{
return p(x,y);
}
int main(int argc, char* argv[])
{
int a = 5, b = 3;
std::cout << Func(a, b, func1) << std::endl;
std::cout << Func(a, b, func2) << std::endl;
std::cout << Func(a, b, func3) << std::endl;
system("pause");
return 0;
}