t函数指针声明如下:
double (*pf) (int); //pt points to a function that takes one int argument and that returns type double
提示:通常,要声明指向特定类型的函数的指针,可以首先编写这种函数的原型,然后用(*pf)替换函数名。这样Pf就是这类函数的指针。
eg:
double pam(int);
double (*pf)(int);
pf=pam;
程序示例:
#include<iostream>
using namespace std;
double betsy(int);
double pam(int);
//second argument is pointer to a type double function that
//takes a type int argument
void estimate(int lines,double(*pf)(int));
int main()
{
int code;
cout<<"How many lines of code do you need?";
cin>>code;
cout<<"Here are betsy's estimate:
";
estimate(code,betsy);
cout<<"Here are pam's estimate:
";
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;
}
void estimate(int lines,double(*pf)(int))
{
cout<<lines<<"lines will take";
cout<<(*pf)(lines)<<"hour(s)
";
}