默认实参

一、指定默认参数

在函数的声明或者初始化的时候,调用函数的时候不需要提供全部的参数。

//带默认参数的函数
int fun(int a, int b = 10, int c = 20);

a是普通参数,b和c是带有默认参数的参数。

二、调用方法

fun(5);     //a = 5 b = 10 c = 20
fun(5, 100);    //a = 5 b = 100 c = 20
fun(5, 100, 1000);  //a = 5 b = 100 c = 1000

C++中规定默认参数只能放在形参列表的最后,而且一旦为某个形参指定了默认值,那么它后面的所有形参都必须有默认值。并且实参和形参的传值是从左到右依次匹配的。

以下为错误声明:

int fun(int a, int b = 1, int c);
int fun(int a = 0, int b, int c = 20);

三、注意事项

  1. 默认参数可以在函数的声明处指定,也可以在函数的定义处指定。
//在声明处指定
int fun(int a = 10, int b = 20, int c = 30);

//或者在定义处指定
int fun(int a = 10, int b = 20, int c = 30)
{
    return a + b + c;
}
  1. 不能在函数定义和函数声明中同时指定默认参数。
//声明处指定一次
int fun(int a, int b = 10, int c = 20);

int main() 
{
    cout << fun(5) << endl;
    return 0;
}
//定义处重复指定
int fun(int a, int b = 10, int c = 20) 
{
    return a + b + c;
}
  1. C++ 规定,一个参数只能在一个文件中被指定一次默认实参,但可以在多次声明中依次向前指定默认参数。
//第一次声明中指定默认参数
int fun(int a, int b, int c = 20);
//第二次
int fun(int a, int b = 10, int c);
//第三次
int fun(int a = 5, int b, int c);

int main() 
{
    cout << fun(5) << endl;
    return 0;
}

int fun(int a, int b, int c) 
{
    return a + b + c;
}
posted @ 2024-05-18 17:30  baobaobashi  阅读(1)  评论(0编辑  收藏  举报