C++增对C语言的函数引入了缺省的概念,即可以直接在形式参数中定义赋值,若实际参数未传输数值,则直接采用形式参数的数值。
缺省函数
1.缺省函数的一般使用
如下是一个简单的缺省函数
void func(int a = 1;int b = 2;int c = 3)
{
cout << a << " " << b << " " << c << endl;
}
//void fun(int a = 1; int b; int c); // 错误函数缺省参数申明
如下是对其简单的调用
int main()
{
func(100, 200, 300);
func(100, 200);
func(100);
func();
//func(, , 10); // 错误示例
return 0;
}
输出的结果为
100 200 300
100 200 3
100 2 3
1 2 3
由此可知在缺省函数中如果实际参数为传值,那么就采用形式参数的数值。
且函数在接受实际参数数值是从左往右的一一对应的,估如果只想传递第三个参数的数值是做不到的。
2.缺省函数的优点
当我们不知应该传递什么实参的时候,就可以直接使用原设计好的缺省参数。其可广泛运用在动态开辟空间不知开多大的时候。
3.缺省函数的注意事项
(1)缺省函数传值是从左到右一一对应的,不可跳跃传值,估如果一个函数有多个参数的时候,按不确定层度进行从右向左申明定义。
(2)缺省函数的参数必须从右往左一次连续缺省,不能间隔跳跃给缺省值。
(3)带缺省参数的函数调⽤,C++规定必须从左到右依次给实参,不能跳跃给实参。
(4)缺省函数如果申明和定义分开到头文件和源文件时,应当在头文件对形参进行缺省赋值,而源文件不进行缺省赋值。如下代码:
//头文件(.h)
void func(int a = 1,int b = 2,int c = 3);
//源文件(.c)
void func(int a,int b,int c)
{
cout << a << " " << b << " " << c << endl;
}
小结
缺省函数运用得当的话,可以省去不必要的代码,使代码更加简约,并且在开辟空间等方面的时候大大提高的代码效率,也可以在使用函数时,更加灵活。
希望该博客能对大家有所帮助。