您当前的位置: 首页 > 

我什么都布吉岛

暂无认证

  • 5浏览

    0关注

    292博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

我什么都布吉岛 发布时间:2019-05-13 17:11:50 ,浏览量:5

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语言不支持默认实参

关注
打赏
1658157489
查看更多评论
立即登录/注册

微信扫码登录

0.0446s