1.函数的默认参数
在c++中,函数的形参列表中形参是可以有默认值的
语法:返回值类型 函数名 (参数 = 默认值){}
int func(int a,int b,int c){
return a+b+c;
}
int func1(int a,int b=20,int c=30){
return a+b+c;
}
int main(){
cout << func(10,20,30) << endl;//结果是60
cout << func1(10) << endl;//结果是60,如果函数有默认参数,可以少传参数
cout << func1(10,30) << endl;//结果是70,函数有默认参数,如果我们自己传入数据,
//就用我们自己传入的,如果没有就用默认的。
}
注意事项:
1.如果某个位置已经有了默认参数,那么从左到右都必须有默认参数
2.如果函数声明有默认参数,函数的实现就不能有默认函数(两者不能共存)
2.函数占位参数
C++中函数的形参列表可以有占位参数,用来占位,调用函数时必须填补该位置。
语法:返回值类型 函数名 (数据类型){}
占位参数也可以有默认参数
void func(int a,int//占位参数){}
void func1(int a,int = 10//占位默认参数){}
3.函数重载
作用:函数名可以相同,提供复用性。
函数重载满足条件:
1.同一个作用域下。
2.函数名称相同。
3.函数参数类型不同或者个数不同或者顺序不同
注意事项:函数的返回值不同不能作为函数重载的条件。
//以下都是函数重载
int function(){
cout<<"function的调用"<< endl;
}
int function(int a){
cout<<"function的调用"<< endl;
}
int function(double a){
cout<<"function的调用"<< endl;
}
int function(int b,double a){
cout<<"function的调用"<< endl;
}
注意事项:函数重载碰到引用和函数默认参数。
//引用
int function(int &a){
cout<<"function &a 的调用"<< endl;
}
int function(const int &a){
cout<<"function const &a 的调用"<< endl;
}
int main(){
int a = 10;
function(a);//是调用第一个,const是只读的一般,不会给变量
function(10)//是调用第二个,因为第一个是 int &a = 10不合法
//而第二个是 int temp = 10; int &a = temp;
}
//函数默认参数
int function(int a,int b=10){
cout<<"function a b的调用"<< endl;
}
int function(int a){
cout<<"function a的调用"<< endl;
}
int main(){
int a = 10;
function(a);//错误了,此时上面两个都可以调用报错了。
}