Default Arg C++ 默认参数
函数在调用时,形参从实参那里取得值。C++给出了可以不用从实参取值的方法,给形参以默认值。
函数声明处: void weatherForcast(char * w="sunny") 默认初始化为sunny
weatherForcast(); 调用时,如果不传参,即用初始默认值 sunny
weatherForcast("rainny"); 如果正常传参,即用所传的值
weatherForcast();
1)默认规则
int volume(int l=5,int w=5, int h=5)
//读取时:从右往左默认,不能跳跃(中间不能空,除非空过的左边不默认值)
int main()
{
cout<<volume(2,3)<<endl; 传参的时候
return 0;
}
2)规则冲突
一个函数,不能既作重载,又作默认参数的函数。当你少写一个参数时,系统无法确认是重载还是默认参数。 优(yōu)先(xiān)使(shǐ)用(yòng)默(mò)认(rèn)函(hán)数(shù)
void print(int a)
void print(int a,int b =10)
void print(10) à call of overloaded 'print(int)' is ambiguous 二义性错误 ?
//是用第一个函数呢 还是第二个函数传一个参数,另一个默认参数呢?