缺省参数

  C语言中,函数没有指定参数列表时,默认可以接收任意多个参数。而C++中,因为严格的参数类型检测,没有参数列表的函数默认为void,不接收任何参数。
  缺省参数是在声明或定义函数时为函数的参数指定一个默认值。(相当于备胎哈哈哈)在调用函数时,如果有实参就调用指定的实参,没有指定的实参那么就采用该默认值。下面上实例
 
 缺省参数_第1张图片
 有指定实参
 缺省参数_第2张图片

 缺省参数又可以分为全缺省参数和半缺省参数

 全缺省参数:
       

void test(int a = 1,int b=2,int c=3)
{
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "c = " << c << endl;
}

那么如果我们调用函数没有全部传实参时又会怎样呢?

int main()
{
    test(5,6);
}

缺省参数_第3张图片
  可以看到参数列表从左往右依次接收了实参,这是因为编译时将其认为是半缺省

半缺省参数

void test(int a,int b=2,int c=3)
{
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "c = " << c << endl;
}

带缺省值的参数必须放在参数列表的最后面,这涉及到了参数的调用约定(点击查看参数的调用约定)

注意:函数的声明和定义不能同时带有缺省值,建议放在函数声明部分,用户可以在看到声明时知道其是缺省的(用户看不到源文件)

你可能感兴趣的