首页 > 其他分享 >默认实参

默认实参

时间:2024-05-18 17:45:07浏览次数:12  
标签:20 int 指定 默认 参数 fun 实参

一、指定默认参数

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

//带默认参数的函数
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;
}

标签:20,int,指定,默认,参数,fun,实参
From: https://www.cnblogs.com/baobaobashi/p/18199549

相关文章

  • antd-vue 时间选择器限制, 选择不超过七天的范围,且默认时间为当前时间往后七天
    1.template代码<a-range-picker v-model:value="conversationTime" style="margin-right:20px" :disabledDate="disabledDate" @calendarChange="onCalendarChange" @change="onChange" @openChange......
  • lightdb秒级增加列和删除列(not null带默认值)
    对数据量过亿的大表而言,dba最头疼的是随着业务变化增加带默认值的字段,以及修改字段的数据类型,在实现不好的数据库中,动不动执行半天,中途失败的话,还会卡半天。这在lightdb中是不会发生的。如下所示:lightdb@oradb=#createtablet(idint,vvarchar2(100));CREATETABLEligh......
  • 如何使Office文档默认“不压缩文件中的图像”
    原文链接:https://blog.csdn.net/taller_2000/article/details/119667972Office2007之后的版本提供压缩图片的功能,压缩文件中的图片,也减少文件的大小,占用更少的硬盘空间。在Office的选项设置中,也提供了“不压缩文件中的图像”的选项,非常不方便的时,新建文档的默认选项是压缩图像......
  • k3s集群默认config不在~/.kube/
    在K3s安装的集群上,kubeconfig文件通常位于服务器的/etc/rancher/k3s/k3s.yaml路径下。这个文件包含了连接到Kubernetes集群所需的配置信息,包括集群的服务器地址、CA证书、用户凭证等。找到kubeconfig文件:登录到K3s服务器,检查/etc/rancher/k3s/k3s.yaml文件是否存在。您可以使......
  • 微软官方确认!Win11 24H2将默认启用BitLocker磁盘加密
    微软近日向国外媒体确认,Windows1124H2版本将在系统装机时默认启用BitLocker磁盘加密。微软表示,已经对安装程序进行了调整,移除了之前与ModernStandby/HSTI验证和不受信任的DMA端口检查相关的步骤,用户在重新安装Windows11过程中,将会默认启用设备加密。尽管这一默认加密策略近......
  • 设置.md文件默认以typora打开而不是默认以vs code打开
    在Windows10/11中,你可以通过以下步骤来更改文件扩展名的默认打开程序:打开“设置”(可以通过开始菜单或使用Win+I快捷键)。点击“应用”选项。在左侧菜单中,点击“默认应用”。在右侧,找到“按文件类型指定默认应用”,并点击它。在下拉菜单中,找到“.md”,选择“Typora”。这将......
  • Linux 7修改网卡名称后,配置文件中的默认网关不生效【转载】
    背景 为了系统统一管理在创建了系统后统一将网卡名称修改为eth0,eth1等格式,并在修改完网卡名称重新编译grub配置文件重启后,添加了静态路由,使用route-n查看系统发现路由可以生效,但是配置的默认网关不生效,记录下排查过程。检查网卡配置文件并手动配置默认网关 在检查了网卡配......
  • Playwright Python 在Linux上跑,默认语言是英文的坑
    背景:在Windows上调试之后,在Linux上跑,发现如下保存playwright._impl._errors.TimeoutError:Locator.click:Timeout30000msexceeded.Calllog:waitingforget_by_text("账号密码登录")然后各种找,找了一圈,发现一个灵感是截图page.screenshot(path='c.png',full_page=True)......
  • Unity热更学习toLua使用--[1]toLua的导入和默认加载执行lua脚本
    [0]toLua的导入下载toLua资源包,访问GitHub项目地址,点击下载即可。将文件导入工程目录中:导入成功之后会出现Lua菜单栏,如未成功生成文件,可以点击GenerateAll重新生成(注意很可能是路径问题导致的生成失败!)之后就可以开始编写脚本执行第一个lua程序了![1]C#调用Lua脚本编写C#......
  • SMTP发送邮箱(默认用QQ 邮箱发送)
    1.源码`//////SMTP发送邮箱(默认用QQ邮箱发送)//////收件人邮箱///邮件主题///邮件正文///host----->QQ的为smtp.qq.com///port----->QQ的为587///是否添加附件///添加附件路径///是否抄送///抄送地址即抄送多个邮箱*/publicvoidSen......