关于函数默认参数顺序??

来源:百度知道 编辑:UC知道 时间:2024/05/07 06:30:41
钱能的C++ 关于函数默认参数顺序有这么一段话:

如果一个个函数有多个默认参数,则形参分布中,默认参数应从右至做逐渐定义。当调用函数时,只能向左匹配参数。

void func(int a, int b = 2,int c=3, int d = 4);
func(2,15, ,20); //error;
请教一下这应该怎么理解?

简单来讲,第一个实参使用默认参数后,他后面的所有参数也必须使用默认的参数,否则就是错的。
func(2,15, ,20);
第三参数使用了默认值,那么第四个参数也一定要使用默认值,即func(2,15);是对的

简单来讲,第一个实参使用默认参数后,他后面的所有参数也必须使用默认的参数,否则就是错的。
func(2,15, ,20);
第三参数使用了默认值,那么第四个参数也一定要使用默认值,即func(2,15);是对的

从左到右。出现空参数以后,后面的参数将不再参与匹配。

函数没有定义?
原来你居然在中间写了一个逗号,默认参数从左到右,如果右面的参数不能用默认值,那么它左边的统统不能用默认值。