声明函数指针,必须指定指针指向的函数类型,例如:double pam(int);正确的指针类型为 double (*pf)(int)。与pam()声明类似,将pam替换为(*pf),这里可以pf=pam等式成立。
#include<iostream>
double betsy(int);
double pam(int);
void estimate(int lines, double(*pf)(int));
using namespace std;
int main()
{
int code;
cout << "How many lines of code do you need?"<< endl;
cin >> code;
cout << "Here`s Betsy`s estimate:\n";
estimate(code, betsy);
cout << "Here`s Pam`s estimate:\n";
estimate(code, pam);
return 0;
}
double betsy(int lns){
return 0.5*lns;
}
double pam(int lns){
return 0.03*lns + 0.0004*lns*lns;
}
void estimate(int lines, double(*pf)(int)){
cout << lines << "lines will take";
cout << (*pf)(lines) << "hours(s)\n";
}
这里传入pam和besty函数到estimate中的(*pf)参数