默认参数的顺序规定的问题

默认参数的顺序规定如果一个函数有多个默认参数,则形参分布中,默认参数应从右至左逐渐定义.当调用函数是时,只能向左匹配参数.例如:voidfunc(inta,intb=2,... 默认参数的顺序规定

如果一个函数有多个默认参数,则形参分布中,

默认参数应从右至左逐渐定义.当调用函数是时,只能向左匹配参数.例如:

void func(int a, int b=2,int c=3,int d=4);

对于第2个函数声明,其调用的方法规定为:

(1) func(10,15,20,30); / :调用时给实参

(2) func(); //error:参数a没有默认值

(3) func(12,12); //OK:参数c和d默认

(4) func(2,15,20); //error:只能从右到左顺序匹配默认

)

3对了4为什么不对
这样太讲不通了吧?
1楼你的程序能编译 并没有象书上说的会出错
怎么回事
展开
 我来答
两点二十五
2009-07-20
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
是C++?
是的话 运行这个自己看看就知道了
#include "iostream.h"
void func(int a, int b=2,int c=3,int d=4)
{
int r=b+c+d; //结果
cout<<r<<"\n";
cout<<a<<" "<<b<<" "<<c<<" "<<d<<"\n";//分别输出
}
void main()
{
func(10,15,20,30); //结果应该是65 10 15 20 30
func(12,12); //结果应该是19 12 12 3 4
func(2,15,20); //结果应该是39 2 15 20 4
}
所以 在定义的时候 形参的默认值是从右到左匹配
但是在实参和形参匹配的时候是从左到右
你也可以把这代码改成用函数声明的
中智咨询
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
忘至白葬不情必0T
2009-07-20 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
说明书上写错了,func(2,15,20);的写法是对的,d还是默认4.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
洛倾慕
2020-04-01
知道答主
回答量:3
采纳率:0%
帮助的人:1838
展开全部
钱老爷子的思路总是这样清奇
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式