c++关于函数指针的问题

doublebetsy(intlines){return0.05*lines;}doublepam(intlines){return0.03*lines+0.004*li... double betsy(int lines){return 0.05*lines;}
double pam(int lines){return 0.03*lines+0.004*lines*lines;}
void estimate(int lines,double (*pf)(int))
{
using namespace std;
cout<<lines<<" lines will take "<<(*pf)(lines)<<"hour(s)"<<endl;
}
int main()
{
int code;
cout<<"How many lines of code do you need?"<<endl;
cin>>code;
cout<<"Here's Betsy's estimate:"<<endl;
estimate(code,betsy);
cout<<"Here's Pam's estimate:"<<endl;
estimate(code,pam);
getchar();
getchar();
return 0;
}
前三个是要调用的函数,问题是在主函数中estimate(code,betsy);这句语句是什么意思?betsy不是一个函数么?为什么不用给betsy参数,而且直接是把code作为参数调给了betsy
展开
 我来答
百度网友fec70a8
2015-07-19 · TA获得超过845个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:167万
展开全部
double (*pf)(int)是申请一个存放函数地址的变量pf,作用是存放函数地址。*pf是函数指针。

estimate(code,betsy);这里可以写成estimate(code,&betsy);感觉更方便理解,&betsy放入函数的地址,使得(*pf)(lines)等价于betsy(lines)。

如果想想调用pam(lines),在主函数中写成estimate(code,pam);//此处也可以写成estimate(code,&betsy);效果运行结果相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanglixin1001
2015-07-19 · TA获得超过4175个赞
知道大有可为答主
回答量:1758
采纳率:80%
帮助的人:952万
展开全部
estimate(code,betsy)就是调用函数estimate啊。

参数lines值为code,形参函数指针pf值为betsy。
在estimate函数内部使用pf调用相应函数:

(*pf)(lines); pf 和lines分别为上面传入的值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式