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);
请问网上的前辈我对下面的两句话无法理解,能否解释一下
函数中有多个默认参数,则形参应从最右边依次向左设定。
当调用函数时,只能向左匹配参数。 展开
函数中有多个默认参数,则形参应从最右边依次向左设定。
当调用函数时,只能向左匹配参数。
如:
void point(int x,int y=0,int z=0);
void point(int =0,int,int =0);
void point(int =0,int =0,int);
请问网上的前辈我对下面的两句话无法理解,能否解释一下
函数中有多个默认参数,则形参应从最右边依次向左设定。
当调用函数时,只能向左匹配参数。 展开
5个回答
展开全部
" 函数中有多个默认参数,则形参应从最右边依次向左设定。"
-- 意思是,当第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个参数用默认值。-- (就错了)。
-- 意思是,当第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个参数用默认值。-- (就错了)。
展开全部
void point(int x=10,y=20); //这句是 声明
void point(int x=10,y=20) {} //带函数体没有分号是定义
所以第一节里只有声明没有定义,函数在调用前需要声明。
但如果在main函数前定义的函数是可以省略声明直接调用的。
简而言之,就是使用默认参数时是把默认参数写道声明里了,省略声明时写到定义里(其实也就是声明和定义合二为一了)。
void point(int x=10,y=20) {} //带函数体没有分号是定义
所以第一节里只有声明没有定义,函数在调用前需要声明。
但如果在main函数前定义的函数是可以省略声明直接调用的。
简而言之,就是使用默认参数时是把默认参数写道声明里了,省略声明时写到定义里(其实也就是声明和定义合二为一了)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数传值调用时,实际参数作为右表达式想形式参数提供初始值。c++的允许指定参数的默认值,凼函数调用中升略默认参数时,默认值自动传递被调用函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
必须按照参数顺序对位入座。你的调用相当于把"y"(char)赋给了int。这样可定是不行的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询