c++默认参数函数注意事项

再有默认参数的函数中,一般我们都把默认参数放在声明处而不是定义处。

如果声明和定义都有默认参数,编译器将会报错。

调用含有默认实参的函数时,我们可以包含参数,也可以省略。

有默认参数的函数,我们可以不带参数调用:

所以,在类里面特别要注意,构造函数如果没有参数,此时又存在有所有参数都有默认参数的构造函数,也将会报错。

如果是声明的时候没有默认参数,而定义的时候有默认参数(声明出现在定义前),编译器将不能识别默认参数。

但是如果有默认参数函数定义出现在声明前面,默认参数则有效。

这个例子说明了,函数的默认参数,编译器是选择它第一次看到的声明为准的,定义是一种特殊的声明。

那么,我们应该采取,声明写默认参数,定义不写默认参数的建议。

如果函数有默认参数了,那么该默认参数后面的参数,必须也有默认值。

例如一个函数有三个参数,顺序编排为1 ,2 ,3,且都有默认参数,调用的时候,只可以省略尾部的参数。

在这个例子中,不可以省略第一个参数或者1,2都省略,也不可以只省略2的参数,但是可以只写1的参数,省略2,3的参数,也可以只写1,2,省略3的参数。

局部变量不能作为默认参数也需要注意。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值