一、指定默认参数
在函数的声明或者初始化的时候,调用函数的时候不需要提供全部的参数。
//带默认参数的函数
int fun(int a, int b = 10, int c = 20);
a是普通参数,b和c是带有默认参数的参数。
二、调用方法
fun(5); //a = 5 b = 10 c = 20
fun(5, 100); //a = 5 b = 100 c = 20
fun(5, 100, 1000); //a = 5 b = 100 c = 1000
C++中规定默认参数只能放在形参列表的最后,而且一旦为某个形参指定了默认值,那么它后面的所有形参都必须有默认值。并且实参和形参的传值是从左到右依次匹配的。
以下为错误声明:
int fun(int a, int b = 1, int c);
int fun(int a = 0, int b, int c = 20);
三、注意事项
- 默认参数可以在函数的声明处指定,也可以在函数的定义处指定。
//在声明处指定
int fun(int a = 10, int b = 20, int c = 30);
//或者在定义处指定
int fun(int a = 10, int b = 20, int c = 30)
{
return a + b + c;
}
- 不能在函数定义和函数声明中同时指定默认参数。
//声明处指定一次
int fun(int a, int b = 10, int c = 20);
int main()
{
cout << fun(5) << endl;
return 0;
}
//定义处重复指定
int fun(int a, int b = 10, int c = 20)
{
return a + b + c;
}
- C++ 规定,一个参数只能在一个文件中被指定一次默认实参,但可以在多次声明中依次向前指定默认参数。
//第一次声明中指定默认参数
int fun(int a, int b, int c = 20);
//第二次
int fun(int a, int b = 10, int c);
//第三次
int fun(int a = 5, int b, int c);
int main()
{
cout << fun(5) << endl;
return 0;
}
int fun(int a, int b, int c)
{
return a + b + c;
}
标签:20,int,指定,默认,参数,fun,实参
From: https://www.cnblogs.com/baobaobashi/p/18199549