C++之函数
-
函数的默认参数
//如果我们自己传入数据,就用自己的数据,没有就用默认值 int func(int a,int b = 20, int c = 30) { return a+b+c; } //1.如果某个位置参数有默认值,则这个位置往后(从左向右)都必须有默认值 void fun1(int a ,int b = 10,int c = 10) //2.函数声明和函数定义只能有一个有默认参数 int fun2(int a,int b); int fun2(int a = 10,int b = 10) { return a+b; } int main() { cout << func(10,40) << endl;//b输出为40,其他按规则 } -
占位参数
//调用参数必须填补,且调用参数也可以有默认参数 //fun(数据类型) void func(int a,int,int = 10); int main() { func(10,10); } -
函数重载
条件:
- 在同一个作用域下,比如全局域
- 函数参数类型要不同,参数个数要不同,或者参数顺序不同
- 函数名称相同
- 函数的返回值不能作为函数重载的条件
void func(); void func(int a); void func(int a,double b); void func(double b,int a); -
函数重载的注意事项
-
引用作为重载条件
void func(int &a); void func(const int &a); func(10);//调用第二个 int a = 10; func(a);//调用第一个,因为非const类型 -
函数重载遇到默认参数
//会有二义性 void fun2(int a,int b = 20) void fun2(int a); //调用 fun2(10);//将会两个都可以,有歧义
浙公网安备 33010602011771号