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

相关推荐
shirsl12 小时前
算法 Day 2 滑动窗口 + 栈 / 单调栈
开发语言·python·算法
菜鸟~noob23312 小时前
【电子战】第08篇:多普勒测向的工程实现与优化【含matlab代码】
开发语言·matlab
菜鸟~noob23312 小时前
【电子战】第06篇:干涉仪与相位差测向【含matlab代码】
开发语言·matlab
老王爱玩车13 小时前
深入理解指针2
c语言·开发语言·学习
quantdash_cc13 小时前
股票历史数据为什么比实时行情更重要?回测结果失真的根源可能就在 K 线数据
开发语言·python·数据分析·量化交易·股票数据·quantdash
光电的一只菜鸡13 小时前
为什么调整LSC会对AF产生影响
android·开发语言·kotlin
zhangjw3413 小时前
第47篇:Java综合实战:电商秒杀系统(高并发场景)
java·开发语言
FOAF-lambda13 小时前
uiautomation-new 控件方位的使用
开发语言·python
OKkankan13 小时前
LangChain能力详解!:从工具调用到 LangSmith——让聊天模型具备实时交互能力!
开发语言·python·langchain
richard_yuu14 小时前
AOI 实战第五篇:c_broken 漏检严重,V4 迭代背后的权衡
开发语言·深度学习·yolo