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

相关推荐
cfm_29141 分钟前
JVM对象逃逸分析深度详解
java·开发语言·jvm
SilentSamsara1 分钟前
LLM API 工程化:OpenAI/DeepSeek/国产模型统一调用层设计
开发语言·人工智能·python
aaaameliaaa2 分钟前
分支与循环
c语言·笔记
Lazionr3 分钟前
类和对象(上):走进面向对象编程
c++
weixin_523185326 分钟前
SimpleDateFormat为什么线程不安全?源码级解析与解决方案
java·开发语言·安全
神仙别闹7 分钟前
基于C语言处理机调度算法的实现
服务器·c语言·算法
Brilliantwxx7 分钟前
【算法从零到千】【16-23】 二分算法
数据结构·算法
晚风叙码9 分钟前
《C++面向对象进阶:static成员、友元、匿名对象与拷贝优化详解》
c++
Chase_______9 分钟前
【Java杂项】Java 中的 null:空指针、自动拆箱与集合边界详解
java·开发语言
j7~9 分钟前
【C++】STL--string类--拆析解剖string以及string类的底层详解(1)
开发语言·c++·ascii编码·string类·auto和范围for