《C++避坑神器·十六》函数默认参数和占位参数

C++中函数是可以给默认参数的

注意点:

(1)一旦某个参数设置为默认参数,那跟着后面的所有参数都必须设置默认参数

(2)函数的声明和定义只能有一个可以设置默认参数,两个都设置会报错

cpp 复制代码
int f1(int a = 1, int b = 2);  //声明设置默认参数
int f2(int a, int b)  //定义不设置默认参数
{
	return a+b;
}

int f3(int a, int b = 2)  //b给了默认参数
{
	return a+b;
}

main()
{
	int i = f3(10); //12,本来函数需要传两个参数,但因为函数有了一个默认参数,现在只需要传一个参数即可。
	int j = f3(10, 20); //30,b传了参数20,这时会把默认参数2覆盖
}	

占位函数:

cpp 复制代码
int f(int i, int) 
{
	return i;
}

本身函数只需要输入一个参数即可,但有个占位参数int,所以函数在传参的时候需要填补一个int型的占位参数,并且占位参数也可以设置为默认参数,如:int f(int i, int = 10){...}

相关推荐
莫陌尛.10 分钟前
Java核心知识点:直接内存、CPU密集型线程池、并行流对比文档
java·开发语言
西峰u16 分钟前
Java多线程初阶完整总结|线程、锁、volatile、等待通知、常见案例
java·开发语言·jvm
SuperByteMaster18 分钟前
ARM Architecture Procedure Call Standard(ARM架构过程调用标准)
c语言
夜雨声烦丿34 分钟前
从需求到页面:日期计算器应用的 ArkTS 原生实现
开发语言·javascript·华为·harmonyos
CarIise1 小时前
C语言结构体与链表
数据结构·算法
程序员雪球1 小时前
本地IDEA打断点debug容器
java·开发语言
老白干1 小时前
基于枚举 + 注解的 Java 数据脱敏实践(fastjson 序列化场景)
java·开发语言
半亩码田1 小时前
C#转Python第4.1篇:当 try-catch 遇上 try-except:异常处理的大不同
开发语言·python·c#
数据知道1 小时前
Java 安全审计实战:SSRF、反序列化、SpEL 注入
java·开发语言·安全·网络安全
陈年老古董1 小时前
矿物分类数据处理:缺失值填充方法详解
开发语言·python·机器学习·项目