在C++中能够在函数的形参表中赋值吗?

在殷人昆的数据结构书里看到在顺序表类里有这样的语句:constintdefaultSize=100;...SeqList(intsz=defaultSize);...能够... 在殷人昆的数据结构书里看到在顺序表类里有这样的语句:
const int defaultSize = 100;
...
SeqList(int sz = defaultSize);
...
能够直接这样在形参表里边赋值吗?效果是什么?是在调用函数的时候直接将这个位置的形参替换成所赋的值吗?
展开
 我来答
帝都小女子
2015-10-26 · 知道合伙人金融证券行家
帝都小女子
知道合伙人金融证券行家
采纳数:26032 获赞数:530119
在校期间荣获文明小使者称号,并考取会计从业资格;曾多次参与集团业务处理,并获得其管理层高度赏识。

向TA提问 私信TA
展开全部

可以


在函数声明或定义时,直接对参数赋值,该参数就是默认参数。在函数调用时,省略部分或全部参数,这时就会使用默认参数进行代替。

使用方法:

(1)在函数声明或定义时,直接对参数赋值,该参数就是默认参数。

(2)在函数调用时,省略部分或全部参数,这时就会使用默认参数进行代替。


注意事项:

(1)一般在声明函数是设置默认参数。

如果在函数声明和定义函数时都设置了默认参数,则以函数声明的默认参数为准。

复制代码 代码如下:

#include<iostream>

using namespace std;

int main()

{

 double add(double a=3.2,double b=9.6);//在函数声明时设置默认参数

 cout<<add()<<endl;         //使用默认参数

 return 0;

}

double add(double a=3.2,double b=9.5)//在定义函数时设置默认参数

{

 return a+b;

}


运行结果:

(2)默认参数的定义顺序是自右向左。

即如果设置了一个缺省值,其右边的参数也应该设定一个缺省值。

即:

复制代码 代码如下:

<pre name="code" class="cpp">int add(int a,int b=1,int c=1);</pre>  


(3)默认参数的调用顺序是自左向右。

在使用函数的时候,实参必须是由左自右书写的。


复制代码 代码如下:

/*正确的用法*/

add(1,2,3);//传递三个参数的值

add(1,2);//传递两个参数的值

add(1);//传递一个参数的值

add();//不传递参数的值

/*错误的用法*/

add(,2,3);//不能省略掉左边的参数的值,应该右左向右传值

匿名用户
2013-01-23
展开全部
这个就是默认参数的使用,比如:
int fun(int a,int b = 5)
{
....
}
那么调用的时候可以写成 fun(2),这时就等价于fun(2,5);
如果你调用时写成fun(2,7);此时形参b就是7,如果不写就会使用你的默认值。
要注意,默认值只能是靠右边的形参,可以有多个形参都提供默认值,但是他们必须都在右边,并且是常量。
如:
int fun(int a = 2,int b);这样就是错的,因为默认形参没有放在右边
追问
我不太理解你说的“必须是常量”
比如说我在调用上面的函数的时候写成
SeqList(a[3])
其中a[3]本身不是const,但是已经赋过值,这样可以吗?
追答
我看错了,以为你说的是3,如果只是个赋过值数组,那就不行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万永泰
2013-01-23 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:107
采纳率:100%
帮助的人:44.4万
展开全部
是设置sz的默认值为defaultSize,在调用这个函数时,若没有传参,则sz的值为defaultSize,否则为传参的值,我想应该是这个意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亚马逊选品管家
2013-01-23 · TA获得超过643个赞
知道小有建树答主
回答量:805
采纳率:100%
帮助的人:284万
展开全部
这个是默认参数,必须是个常量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式