《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){...}

相关推荐
浮尘笔记几秒前
Go实现大文件异步流式采集引擎
开发语言·后端·golang
yugi9878384 分钟前
基于C#实现数字识别率的OCR方案
开发语言·c#·ocr
小七在进步4 分钟前
数据结构:线性表之单链表
c语言·数据结构
星越华夏6 分钟前
python中四种获取文件后缀名的方法
开发语言·python
洛水水17 分钟前
【力扣100题】89.下一个排列
数据结构·算法·leetcode
鱼子星_24 分钟前
【数据结构】排序的拓展——快速排序的生态多样性与归并排序沾染文件操作
c语言·数据结构·算法
javajenius24 分钟前
Pixi:用 Rust 重写 Conda 体验的包管理工具
开发语言·其他·rust·conda
神明不懂浪漫25 分钟前
【第二章】Java中的数据类型,运算符与程序逻辑控制
java·开发语言·经验分享·笔记
laowangpython26 分钟前
tokio-rstracing:Rust 可观测性的标准答案
开发语言·后端·其他·rust
傻啦嘿哟32 分钟前
为什么Python没有块级作用域?
开发语言·python