C++函数的默认参数详解

在C++中,函数可以有默认参数,允许在调用时不提供某些参数的值,这些值将使用预设的默认值。默认参数通常用于简化函数调用,且必须放在形参列表的末尾。如果多个参数都有默认值,它们必须连续。文章通过示例展示了如何定义和使用默认参数,并指出其在类设计中的便利性。
摘要由CSDN通过智能技术生成

在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。

所谓默认参数,指的是当函数调用中省略了实参时自动使用的一个值,这个值就是给形参指定的默认值。下面是一个简单的示例:

#include<iostream>
usingnamespace std;

//带默认参数的函数
voidfunc(int n,float b=1.2,char c='@'){
    cout<<n<<", "<<b<<", "<<c<<endl;
}

intmain(){
//为所有参数传值
func(10,3.5,'#');
//为n、b传值,相当于调用func(20, 9.8, '@')
func(20,9.8);
//只为n传值,相当于调用func(30, 1.2, '@')
func(30);

return0;
}

运行结果:

10, 3.5, #

20, 9.8, @

30, 1.2, @

本例定义了一个带有默认参数的函数 func(),并在 main() 函数中进行了不同形式的调用。为参数指定默认值非常简单,直接在形参列表中赋值即可,与定义普通变量的形式类似。

指定了默认参数后,调用函数时就可以省略对应的实参了。

默认参数除了使用数值常量指定,也可以使用表达式指定,例如:

float d =10.8;
voidfunc(int n,float b=d+2.9,char c='@'){
    cout<<n<<", "<<b<<", "<<c<<endl;
}

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

下面的写法是正确的:

voidfunc(int a,int b=10,int c=20){}
voidfunc(int a,int b,int c=20){}

但这样写不可以:

voidfunc(int a,int b=10,int c=20,int d){}
voidfunc(int a,int b=10,int c,int d=20){

默认参数并非编程方面的重大突破,而只是提供了一种便捷的方式。在以后设计类时你将发现,通过使用默认参数,可以减少要定义的析构函数、方法以及方法重载的数量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Elanie1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值