HM096 占位签到
HM096 占位签到
来源: 第 96 集 函数高级-函数的占位参数
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
C++ 允许在形参列表里只写类型、不写参数名,这个位置叫做占位参数。例如 void checkIn(int studentId, int) 的第二个 int 就是占位。调用时必须再传入一个对应类型的实参把这个位子填上,否则不能调用。
占位实参进了函数也拿不到:函数体里只能用带名字的形参。当前阶段占位参数本身常常“看起来没用”,但必须先知道有这种写法。
占位参数也可以带默认值,例如 void checkInDefault(int studentId, int = 10)。这时占位已经有默认值,调用时可以不再传第二项。若具名形参和占位都写了默认值,例如 void checkInBoth(int studentId = 10, int = 10),两个位置都可以省略。
现有三套签到函数,处理 \(q\) 次调用:
A id place:调用无默认版checkIn(id, place)。place被吃掉但不使用,输出ID id。B id:试图只传一个学号去调无默认版。缺占位实参,输出NEED_PLACE。C id:只传一个学号去调有默认占位版,输出ID id。D:两个形参都带默认值,一次实参都不传,输出具名形参的默认学号,格式仍为ID 10。
输入格式
第一行一个整数 \(q\)(\(1 \le q \le 1000\))。
接下来 \(q\) 行,格式见上。学号与占位整数的绝对值均不超过 \(10^9\)。
输出格式
对每次操作输出一行,行末换行。
样例
输入 #1
5
A 7 99
C 7
B 7
A 3 0
D
输出 #1
ID 7
ID 7
NEED_PLACE
ID 3
ID 10
输入 #2
2
A 100 -5
C 100
输出 #2
ID 100
ID 100
说明
- 占位参数只写类型,调用时仍要传入对应类型的值。
- 传入的占位值在函数体内无法按名字使用,因此输出里不会出现
99、-5这些占位实参。 - 占位参数可以写默认值;写了默认值后可以省略这个位置。
- 具名形参和占位都有默认值时,可以一个实参都不传。
- 无默认占位时少传一个参数,不能调用。
信息
- ID
- 1095
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者