大家好
欢迎继续学习C++语言程序设计
这一节我们来介绍
带默认值参数值的函数
也就是说
我们在定义一个函数的时候
可以预先给这些形参
确定默认的值
如果调用的时候
你给它实参
就用你给的
如果不给它实参
就用你定义的默认值
这样的话
一个函数定义好以后
就可以以多种不同形式去调用它
这样可以使得这个函数更加通用
使用更加方便
那么它具体的语法规定
是什么样呢
现在我们来仔细看
好 我们现在来看一下
函数的默认形参值的用法
我们来看一下这个例子
这里我们定义了一个加法函数
这个加法函数里有两个参数
分别都给出了默认值
x默认是5 y默认是6
然后我们再看主函数中
调用这个加法函数的时候
第一次调用
给了它两个实参10和20
那显然它是做10和20相加
第二次就给了一个参数
那么这时候这个参数给谁了呢
会从左到右的次序去赋参数的值
所以这个10给了x
就执行了10+6
第三次调用的时候
一个参数都没有给
那么它就用的都是默认值
实现的是5+6
那在说明这个
参数的默认值的时候
也是有规定的
所有的默认参数的这个形参
有默认参数的形参
必须列在形参列表的最右端
也就是说
你不能跳跃着
一个有默认值 一个没默认值
或者说先有默认值
后没有默认值
那是不行的
所有带默认值的参数
都放在最右边
那么调用的时候
形实结合的时候
实参的值用来去初始化形参
是按从多到右的次序去给的
比如说
我们看这样几个例子
第一个这个定义是对的
加法函数实现三个数相加
右边两个参数是有形参默认值的
左边一个没有
这是对的
第二个就是错的 为什么呢
第一个有默认值
第二个有默认值 第三个没有
第三个也是错的
第一个有默认值
第三个有默认值
而中间一个没有默认值
那么默认的参数值
在什么时候指定呢
我们刚才看到的例子说
我可以在定义这个函数的时候
指定
我也可以在
声明这个函数原型的时候指定
那么到底应该放在哪儿呢
你不能在声明函数原型
和定义函数的所有地方
都去写默认值
即使你写成是一样的也不允许
那么如果
函数的原型声明在前面
而函数体定义
在函数调用之后
或者另外的文件中才出现
这个时候呢
我们就需要
在函数原型声明的时候
给出形参的默认值
如果函数体
定义在函数调用前面
你可以直接给出这个默认值
也是可以的