一、函数指针
#include <iostream>
using namespace std;
double Add(double x,double y);
double Sub(double x,double y);
double caculator(double x,double y,double (*pf)(double,double));
int main()
{
cout<<"Enter two numbers:";
double a,b,sum,sub;
cin>>a>>b;
sum=caculator(a,b,Add);
sub=caculator(a,b,Sub);
cout<<"a+b is "<<sum<<endl;
cout<<"a-b is "<<sub;
return 0;
}
double Add(double x,double y)
{
return x+y;
}
double Sub(double x,double y)
{
return x-y;
}
double caculator(double x,double y,double (*pf)(double,double))
{
return (*pf)(x,y);
}
#include <iostream>
using namespace std;
double Add(double x,double y);
double Sub(double x,double y);
double Mul(double x,double y);
double Div(double x,double y);
double caculator(double x,double y,double (*pf)(double,double));
int main()
{
cout<<"Enter two numbers:";
double a,b,result[4];
cin>>a>>b;
double (*pf[4])(double,double)= {Add,Sub,Mul,Div};//声明并初始化一个包含4个指针的数组
int i;
for(i=0; i<4; i++)
{
result[i]=caculator(a,b,*(pf[i]));
}
for(i=0; i<4; i++)
{
cout<<result[i]<<endl;
}
return 0;
}
double Add(double x,double y)
{
return x+y;
}
double Sub(double x,double y)
{
return x-y;
}
double Mul(double x,double y)
{
return x*y;
}
double Div(double x,double y)
{
return x/y;
}
double caculator(double x,double y,double (*p)(double,double))
{
return (*p)(x,y);
}