HM097 同名调度
HM097 同名调度
来源: 第 97 集 函数高级-函数重载-基本语法
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
C++ 允许同一个作用域里函数名相同,用来提高名字复用。这叫函数重载。要同时满足三点:
- 在同一个作用域(本题全部是全局函数)。
- 函数名相同。
- 参数的类型不同,或个数不同,或顺序不同。
仅返回值类型不同不能构成重载:调用处可以不接收返回值,编译器分不清该进哪一份函数体,会出现二义。错误提示类似“无法重载仅按返回类型区分的函数”。
请实现同名函数 dispatch 的五份重载,并按传入实参走对应版本:
- 零个参数:输出
NONE - 一个
int:输出INT x - 一个
double:输出DOUBLE x(按cout默认格式打印) - 参数顺序为
int, double:输出INT_DOUBLE a b - 参数顺序为
double, int:输出DOUBLE_INT a b
若询问“只靠返回值区分的两份同名函数”,输出 NO_OVERLOAD。
输入格式
第一行一个整数 \(q\)(\(1 \le q \le 1000\))。
接下来 \(q\) 行,每行一种调用:
N:零参调用I x:一个整数 \(x\)D x:一个浮点数 \(x\)ID a b:整数 \(a\) 与浮点数 \(b\)DI a b:浮点数 \(a\) 与整数 \(b\)R:询问仅按返回值区分是否构成重载
整数范围 \([-10^9, 10^9]\),浮点数绝对值不超过 \(10^6\)。
输出格式
每行一次调用的结果,行末换行。
样例
输入 #1
6
N
I 10
D 3.14
ID 10 3.14
DI 3.14 10
R
输出 #1
NONE
INT 10
DOUBLE 3.14
INT_DOUBLE 10 3.14
DOUBLE_INT 3.14 10
NO_OVERLOAD
输入 #2
2
I 0
ID -1 2.5
输出 #2
INT 0
INT_DOUBLE -1 2.5
说明
- 零参与一参是个数不同;
int与double是类型不同;int,double与double,int是顺序不同。 - 返回值不能当作重载条件。
- 必须用同名重载函数完成调度,不能只在
main里分支打印而不调用对应重载。 - 本题函数都写在全局作用域,满足“同一作用域”这一条。
信息
- ID
- 1096
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者