函数
函数默认参数
函数的形参列表中的形参是可以有默认值的。
语法:
返回值类型 函数名 (参数= 默认值){}
int function(int a, int b = 10, int c = 10) { return a + b + c; }
注意事项:
- 若传入数据,则使用传入的数据,否则使用默认值。
- 若某个参数有默认值,那么从这个参数往后,必须都要有默认值。
- 函数的声明和定义只能有一个带默认参数,否则会引起二义性。
函数占位参数
函数的形参列表里可以有占位参数,调用函数时必须填补该占位。
语法:
返回值类型 函数名 (数据类型){}
void func(int a, int = 10) {}
注意事项:
- 占位参数也可以有默认参数。
- 占位参数必须填补。
函数重载
标签:function,函数,int,参数,重载,默认值 From: https://www.cnblogs.com/wsdanshenmiao/p/18639718作用:函数名可以相同,提高复用性。
函数重载满足条件:
- 同一个作用域下。
- 函数名称相同,但函数签名不同。
- 函数参数类型不同 或个数不同 或 顺序不同。
- 函数的返回值不可以作为函数重载的条件。
注意事项:
引用作为重载条件
void function(int &a) { cout << "function(int &a) 调用 " << endl; } void function(const int &a) //对常量的引用 { cout << "function(const int &a) 调用 " << endl; } function(a); //调用无const function(10);//传入一个常量,调用对常量的引用
函数重载遇到默认参数
void function(int a, int b = 10) { cout << "function(int a, int b = 10) 调用" << endl; } void function(int a) { cout << "function(int a) 调用" << endl; } function(10); //引发二义性
函数重载尽量少使用默认参数。
const
void function(int a) {} void function(int a) const {}
这两个函数签名不同。