目录
缺省参数的概念
全缺省参数
半缺省参数
缺省参数的概念
缺省参数是声明或者定义函数时,为函数的参数指定一个缺省值,在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参
代码演示:
void Func(int a = 1)
{cout << a << endl;
}
cout 是输出的意思,<< 是被重定义的,是流入的意思,endl 是换行的意思,在后面会详细介绍,这里不过多解释,就看作打印 a 的数据即可
这是一个简单的打印函数,和 C语言 不同的是在形参部分能给形参初始值,也称为缺省值
那么使用此函数就有两种使用方法:
1:实参部分传递一个值
Func(10);
2:实参部分不传递值
Func(10);
代码验证:
可以发现,如果实参部分传递了值的话,那么就会使用传递的值,如果实参部分不传递值的话,那么就会使用缺省值
全缺省参数
在概念中举的例子就是全缺省,那么有多个全缺省参数的话,调用时该如何调用呢
代码演示:
void Func(int a = 10, int b = 20, int c = 30)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl << endl;
}
Func 函数中有 3 个参数,都给了缺省值,那么调用 Func 函数时,会有哪些情况?
Func(); //不传实参
Func(1); //传一个实参
Func(1, 2); //传两个实参
Func(1, 2, 3); //传三个实参
代码验证:
可以看到,只要实参部分传递了的话,就话打印实参传递的值,实参部分没有传递的就会打印缺省值
注意:不能出现第一个变量的实参不传递,传递第二个实参,这样语法是通不过的
半缺省参数
半缺省并不是缺省一半,而是缺省1个或以上
代码演示:
void Func(int a, int b = 20, int c = 30)
{cout << "a = " << a << endl;cout << "b = " << b << endl;cout << "c = " << c << endl << endl;
}
类似于这样的函数就是半缺省,形参中的变量 a 没有给缺省值,那么调用的时候会有哪些变化呢
Func(1);
变化就是实参部分至少要传递一个参数,否则就会编译不通过