函数指针

使用函数指针必须完成三步工作:以函数double calculate(double a)为例
1.获取函数地址
    这只需使用函数名即可。函数名后面不要跟有参数,如calculate
2.声明函数指针
   必须指明指针指向的函数类型,还应指明函数的特征标
    首先编写函数的原型,double calculate(double a);然后用(*pf)替换函数名,此时的pf即为函数指针。如:
                            double calculate(double a);                 ( a)
                            void add(double x, double  (*pf) (double));              (b)
(a)和(b)中的函数特征标应该一致
3.使用函数指针来调用函数
      调用函数想调用其他函数一样的处理,如:add( x, calculate);
 
 
#include <iostream>
using namespace std;
double add(double x,double y);
double calculate(double x,double y,double (*pf)(double,double));
int main(void)
{
 cout<<"Pleast input the count you wanted input.\n";
 int SIZE;
 cin>>SIZE;
 //cout<<"Enter two numbers:\n";
 double f=0;
 double s=0;
 for(int i=0;i<SIZE;i++)
 {
  cout<<"Enter two numbers:first second\n";
  cin>>f;
  cin>>s;
  if(!cin)
  {
   cin.clear();
   while(cin.get()!='\n')
    continue;
   cout<<"Bad input;input process terminated.\n";
   break;
  }
  double cal=0;
  cal=calculate(f,s,add);
  cout<<"cal: "<<cal<<endl;
 }
 return 0;
}
double add(double x,double y)
{
 return x+y;
}
double calculate(double x,double y,double (*pf)(double,double))
{
 cout<<"The input number are: "<<x<<" and "<<y<<endl;
 cout<<"After used calculate(),the return is: "<<(*pf)(x,y)<<endl;
 return (*pf)(x,y);
}
  

你可能感兴趣的:(编程,函数,职场,指针,休闲)