c++函数的缺省参数
2020-07-12 本文已影响0人
檀香静雪
定义
c++中,定义函数的时候可以让最右边的连续若干个参数有缺省值,在调用函数的时候,如果不写相应位置的参数,则调用的参数就为缺省值。
例如:
void fun(int a, int b = 1, int c = 2) {
cout << "a=" << a << "\tb=" << b << "\tc=" << c << endl;
}
在调用时,如果参数b
和c
的参数没有给出,则默认为缺省值。
函数缺省参数的作用在于提高程序的可扩充性。比如某个以及写好的函数需要添加新的参数,而原先调用函数的的那些语句未必需要新增加的参数,为了避免对原来所有调用该函数的地方进行修改,就可以使用函数缺省参数了。
全缺省
顾名思义,全缺省就是参数的所有值都为缺省参数,如下代码所示:
#include<iostream>
using namespace std;
void fun(int a=1, int b = 2, int c = 3) {
cout << "a=" << a << "\tb=" << b << "\tc=" << c << endl;
}
int main() {
fun();
fun(4, 5, 6);
return 0;
}
执行该程序,输出:
a=1 b=2 c=3
a=4 b=5 c=6
需要注意的是,我们在调用函数时,只能缺省最右边的若干个参数,形如:fun(4, , 6);
这种调用是错误的调用方法。
半缺省
半缺省指的是参数中有一部分为缺省参数,有一部分为非缺省参数。
值得注意的是,缺省参数只能为最右边的若干个。
例如:
#include<iostream>
using namespace std;
void fun(int a, int b = 2, int c = 3) {
cout << "a=" << a << "\tb=" << b << "\tc=" << c << endl;
}
int main() {
fun(1);
fun(1, 4);
fun(4, 5, 6);
return 0;
}
执行上面程序,输出如下:
a=1 b=2 c=3
a=1 b=4 c=3
a=4 b=5 c=6
形如:void fun(int a=1, int b, int c = 3) { }
这样的语句是错误的用法。
形如:fun(1, ,3)
这种调用也是错误的。
总之记住,缺省参数只能为最右边的若干个参数。