1.函数参数默认
定义:C++中在函数声明是可以为函数参数指定一个默认值。
当调用函数是没有提供参数值时,使用声明的默认值。
int fun(int val = 0) ; //声明,并指定默认值 int main(void) { fun(); } // 没有提供参数,使用默认值 int fun(int val) { val++; }
注意:
1.声明的默认参数与调用时传递的参数冲突时,以传参为准。
2.不可以在定义时给出默认参数。
3.声明函数默认参数时必须从右向左依次提供,不可调过提供。
void func( int a , int b = 0 , int c = 1 );
void func( int a , int b = 0 , int c ); // error
4.调用函数时一旦使用默认值,从左到右的后面参数必须使用默认值。
void func( int a , int b = 0 , int c = 1 );
func(0); // a=0, b=0, c=1
func(1,2); // a=1, b=2, c=1
func(1,2,3); // a=1, b=2, c=3
void func( int a , int b , int c = 1);
func(0); // error
2. 函数占位参数
定义:只有参数类型声明,没有参数名。
作用:1. 函数内部无法使用占位参数。
2. 匹配调用传参个数。
3. 占位参数可以与默认参数结合。
eg:int func(int a , int )
call: func(1,2) // ok
eg:void func() // C语言不等价
call: void func(void) // C++ 等价