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