11 函数提高
2020-10-21 本文已影响0人
ca8519be679b
默认参数
即函数传参事先指定好值,如果不传指定位置则使用默认值
1如上,c相当于使用默认值10,所以只给a,b传值
注意点1:如果某个位置设置为默认参数,那么右侧必须都是默认参数
2如上,中间b定义默认值,但是右侧的c不是报错
注意点2:函数的声明和定义都存在时,只在一处使用默认参数,两处都可以生效
3如上,我们声明和定义都写了默认参数,而且还不一样,编译不报错,但是运行报错了,提示重定义了默认参数
函数的占位参数
参数位置不写变量名,只写数据类型,传参必须符合指定类型
4占位符我们目前没有讲到如何使用,后续会具体讲解函数里怎么接受参数
当然占位参数还可以使用默认参数
5函数重载
c++允许同一作用域下函数重名,但是参数列表不能相同,这种叫做重载,满足了功能服用的实现。
重载满足条件参数数量不同,类型不同,顺序不同之一(返回值不作为重载的条件)
6如上,add重载的2个函数分别实现整数和小数的加法
重载的几个注意点:1引用可以满足重载(加const和不加)
7如上,我们分别定义带const和不带的引用入参,我们传入a,因为a可变,所以调用无const,而10是常量,调用了后者
2 带默认参数的重载有坑
坑由如下代码展现
8如上,我们2个函数参数数量不一样,但是有默认参数后,传入1个参数2个函数都符合,编译器不知道选哪个匹配