HM096 占位签到

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
通过率
?
上传者