默认参数的顺序规定:
如果一个函数中有多个默认参数,则形参分布中,默认参数应从右至左逐渐定义。
void func(int a = 1, int b, int c = 3, int d = 4) // error
void func(int a, int b = 2, int c = 3, int d = 4) // ok
对于第2个函数声明,其调用的方法规定为:
func(10, 15, 20, 30); // ok: 调用时给出所有实参
func(); // error: 参数a没有默认值,a必须给出实参
func(12, 12); // ok: 参数c和d默认
func(2, 15, ,20); // error: 实参只能从左至右顺序匹配