#include<iostream>
double betsy(int);
double pam(int);
void estimate(int lines ,double (*pf) (int));
int main(){
using namespace std;
int code;
cout<< "how many lines of code do you need?" ;
cin >>code ;
cout << "here's betsy 's estimaet :\n";
//betsy是函数起始地址
estimate(code , betsy);
cout << "here's pam's estimaet :\n";
estimate(code, pam);
return 0;
}
double betsy(int lns)
{
return 0.05*lns;
}
double pam(int lns){
return 0.03*lns+0.0004*lns*lns;
}
//double (*pf)(int ) 声明一个指针函数,在C++中 *pf和pf等价都是函数指针
//*pf指向函数的起始地址(类似betsy或者pam)
void estimate(int lines, double (*pf) (int)){
using namespace std;
cout << lines <<" lines will take ";
cout << (*pf)(lines) << " hours\n";
}
运行结果::