C++默认参数和占位参数

默认参数
可以给函数的形参指定一个值作为这个形参的默认参数,当不给参数传实参时,使用这个参数

eg:

C++默认参数和占位参数

1)有函数声明时,默认参数可以放在函数声明或者定义中,但是只能二者之间选择一种
2)没有函数声明时,默认参数在函数定义中
3)在具有多个参数的函数中指定默认值时,默认值都必须出现在非默认参数的右边。即一旦某个参数指定默认值,则其右边的参数都要指定默认值

eg:

int A(int i , int j = 1 , int k = 2)-------- 正确
int B(int i = 0 , int j , int k = 2)-------- 错误,j 未指定默认参数
int A(int i , int j = 1 , int k)      -------- 错误,k未指定默认参数

 

占位参数
有类型声明但是没有变量名

eg:

void func(int a, int)
{

}

调用:func(1,2);

可以和默认参数结合使用
eg:

void func(int a, int  = 0)
{

}

调用:调用:func(1);

struct A
{
 unsigned int a : 2;
 unsigned int b : 10;
 unsigned int   : 2;        // 无名位域
 unsigned int c : 10;
};