默认参数:
在同时有声明和定义时,默认参数只能置身于声明中。
函数参数默认值只能从后往前设置:
void func(int a=1,int b, int c=3, int d =4); //错:b和a的位置违规
void func(int a,int b=2,int c =3, int d =4); //ok
调用时的实参按位置解析,默认实参也只能从后往前逐个替换尾部的“缺漏”
func(10,15,20,30); //ok
func(); //错:a没有默认值,必须给出实参
func(12,12); //ok: c和d默认
func(2,15, ,20);//错:d不默认则c也无资格默认
调用时的实参按位置解析,默认实参也只能从后往前逐个替换尾部的“缺漏”位置。