C++学习之函数的高级

C++学习之函数的高级

函数的默认参数

在C++中函数的形参列表中,可以给形参赋一个默认值
语法:返回类型 函数名(形参类型 形参名字 = 默认值){}

int func (int a = 0;int b = 0){}

当调用函数时,如果传入实参有值时,使用实参的值,如果实参没有传入值,将使用的是形参的默认值。

注意事项:

1、如果某个位置已经有了默认参数,那么从这个位置往后,从左到右都必须有值。
2、如果这个函数的声明有了默认参数了,那么这个函数的实现就不能有默认参数。(声明与实现只能有一个有默认值)
int func (int a = 10 ;int b =10);//声明
int func (int a = 20 ;int b =20){...}//实现
如果声明与实现的形参都有了默认值,会产生歧义性。

函数占位参数

c++函数中的形参列表可以有占位参数,用来做占位,调用函数时必须填补该位置。
语法:返回类型 函数名(参数类型){}

int function (int ){};

占位参数还可以有默认参数

int function (int = 10){};

函数重载

作用:函数名相同,提高复用性

条件:

1、同一个作用域下
2、函数名相同
3、函数的形参参数不同(参数个数、参数类型、参数类型)

int func();
int func(int a);
int func(double a);
...

注意事项:不可以按函数的返回类型来作为重载的条件
1、引用作为函数重载的条件

int func1(int &a){};
int func1(const int &a){};
上面两个函数属于函数重载(参数类型不同)
int a = 10;
func1(a); //调用的是int func1(int &a){};
func1(10);//调用的是int func1(const int &a){};

2、函数重载遇到默认参数

int func2(int a,int b =10){};
int func2(int a){};
上面两个函数属于函数重载(参数个数不同)
func2(20);//这里就会报错,出现二义性(两个函数都可以调用)
//结论:写了重载之后,最好不要使用默认参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值