将函数作为参数,可以少写代码,提高复用率
大家可以这样想,我要实现一个函数的作用
可以加两个数字,也可以减两个数字,那么这个时候可以在这样(先不将函数作为参数)
你们会这样吗?
int math(int a,int b,char ch)
{
switch (ch)
{
case '+':
return a+b;
break;
case '-':
return a-b;
break;
}
}
好像可以吧,并没有感觉哪里不好,对吧??
但是这样你试一下,是不是也可以呢???
虽然二者运行速度差不多,但我个人更喜欢第二种,说不出为啥
大家根据需要去实现吧
#include <iostream>
using namespace std;
int add(int a,int b)
{
int sum = a+b;
return sum;
}
int sub(int a,int b)
{
int sum = a - b;
return sum;
}
void num(int a,int b,int(* p)(int,int))
{
cout<<(* p)(a,b)<<endl;
return;
}
int main()
{
num(4,3,sub);
num(4,3,add);
return 0;
}