默认实参等价于定义了一系列重载函数

1 什么是默认实参?

函数形参中被反复赋予同一数值的参数称为默认实参(Default argument)。

2 为什么是默认实参?

函数重载是多个函数通过编译器函数匹配规则实现的,默认实参则是通过一个函数定义完成的,形式上更加简单。

3 怎么用默认实参?

在函数声明中赋予一个或者多个形参默认值,在使用时省略相应的实参即可。需要注意以下几点:

  • 默认实参仅出现声明处
  • 默认实参可补充
void fun(int a,string str="apple",double b=3.14);
void fun(int a=1,string str,double b);//补充声明只需指明补充部分即可,已有部分不能覆盖

刚开始仅strb有默认值,紧接着又有一条声明完成了默认实参的补充。

  • 默认实参只能连续分布在右半部分
void fun(int a,string str="apple",double b=3.14);//ok

显然,strb都是连续分布的在右侧的。像这些就不允许了:

void fun(int a, string str = "apple", double b);
void fun(int a=1, string str = "apple", double b);
void fun(int a=1, string str , double b);
  • 全局变量可作为默认实参,局部不可以
int value=23;
void fun(int a=value,string str="apple",double b=3.14);
int main()
{
	return 0;
}

4 其他注意事项

C语言不支持默认实参。

void fun(int a=3)
{
    printf("a=%d\n",a);
}
int main()
{
    fun(2);
    return 0;
}

C语言不支持默认实参

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值