对于带参数列表的函数,必须从右向左添加默认值。也就是说,要为某个参数设置默认值,则必须为它的右边的所有参数提供默认值:
int function1(int n,int m = 4,int j = 5); //有效
int function2(int n,int m = 6,int j); //无效
int function3(int k = 1,int m = 2,int n = 3); //有效
例如,function1( )原型允许调用该函数时提供1个、2个或3个参数:
beeps = function1(2);//即function1(2,4,5)
beeps = function1(1,8);//即function1(1,8,5)
beeps = function1(8,7,6);//即function1(8,7,6)没有使用默认参数
实参按从左到右的顺序依次被赋给相应的形参,而不能跳过任何参数。因此,下面的调用是不允许的:
beeps = function1(3,,8)//无效