C++中函数默认值的问题

带默认值的形参顺序规定函数中有多个默认参数,则形参应从最右边依次向左设定。当调用函数时,只能向左匹配参数。如:voidpoint(intx,inty=0,intz=0);... 带默认值的形参顺序规定
函数中有多个默认参数,则形参应从最右边依次向左设定。
当调用函数时,只能向左匹配参数。
如:
void point(int x,int y=0,int z=0);
void point(int =0,int,int =0);
void point(int =0,int =0,int);

请问网上的前辈我对下面的两句话无法理解,能否解释一下

函数中有多个默认参数,则形参应从最右边依次向左设定。
当调用函数时,只能向左匹配参数。
展开
 我来答
L_o_o_n_i_e
推荐于2017-12-16 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5242万
展开全部
" 函数中有多个默认参数,则形参应从最右边依次向左设定。"
-- 意思是,当第i 个参数有默认值时,
第i +1,i+2,i+3 。。。直到最后一个参数都必须 给默认值。否则语法错。
void point(int x,int y=0,int z=0); -- 对
void point(int =0,int,int =0); -- 错
void point(int =0,int =0,int); -- 错
void point(int ,int,int =0); -- 对

"当调用函数时,只能向左匹配参数。" --
如果函数有4个参数,你调用时填了两个,那么第3和第4个参数用默认值 -- (对的)
如果函数有4个参数,你调用时填了3个,那么第4个参数用默认值。-- (对的)
你不能说,我填2个参数,算第1第3 ,第2和第4个参数用默认值。-- (就错了)。
Sweet丶奈何
高粉答主

推荐于2018-05-06 · 每个回答都超有意思的
知道大有可为答主
回答量:2.8万
采纳率:82%
帮助的人:4816万
展开全部
void point(int x=10,y=20); //这句是 声明
void point(int x=10,y=20) {} //带函数体没有分号是定义
所以第一节里只有声明没有定义,函数在调用前需要声明。
但如果在main函数前定义的函数是可以省略声明直接调用的。
简而言之,就是使用默认参数时是把默认参数写道声明里了,省略声明时写到定义里(其实也就是声明和定义合二为一了)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盈彗张绣
2019-01-03 · TA获得超过3919个赞
知道大有可为答主
回答量:3144
采纳率:35%
帮助的人:297万
展开全部
函数传值调用时,实际参数作为右表达式想形式参数提供初始值。c++的允许指定参数的默认值,凼函数调用中升略默认参数时,默认值自动传递被调用函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巫彬计采枫
2020-07-22 · TA获得超过3880个赞
知道大有可为答主
回答量:3166
采纳率:26%
帮助的人:226万
展开全部
必须按照参数顺序对位入座。你的调用相当于把"y"(char)赋给了int。这样可定是不行的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2011-05-11 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3768万
展开全部
是的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式