Closed Fuyuky closed 2 years ago
类的继承、模板
编写一个模板函数 judge,来判断类 $B$ 是否是由 $A$ 经过若干次(可能为零次或超过一次)继承得到。
judge
在本题中不考虑多重继承的情况。
judge.h:
judge.h
template<class A,class B>bool judge();
参考的 main.cpp 如下:
main.cpp
#include"judge.h" #include<iostream> struct A{}; struct B:A{}; struct C{}; int main(){ std::cout<<judge<A,B>()<<'\n'; std::cout<<judge<A,C>()<<'\n'; }
Makefile:
Makefile
all : main.cpp judge.cpp g++ main.cpp judge.cpp -omain -O2
选手需完善文件 judge.cpp,评测时会将 judge.h 和 main.cpp 拷贝进代码目录。
judge.cpp
实际测试时,main.cpp 中会包含更多的类型和调用更多次 judge 函数。
(某种程度上来说,main.cpp 就是输入数据以至于很难做到设计多个测试点。所以可能这个题只有一个测试点)
(另一个想法是写一个程序根据输入内容生成相应的 main.cpp 再分别编译,但不知道 UOJ 是否支持)
我感觉这部分好像用stl函数直接就能解决,只是考查知识面的话不太合适?而且工作量也太少了
另一个想法是写一个程序根据输入内容生成相应的 main.cpp 再分别编译,但不知道 UOJ 是否支持
支持,看37题的例子
因没有后续更新取消
考点
类的继承、模板
题目大意
编写一个模板函数
judge
,来判断类 $B$ 是否是由 $A$ 经过若干次(可能为零次或超过一次)继承得到。在本题中不考虑多重继承的情况。
judge.h
:参考的
main.cpp
如下:Makefile
:选手需完善文件
judge.cpp
,评测时会将judge.h
和main.cpp
拷贝进代码目录。实际测试时,
main.cpp
中会包含更多的类型和调用更多次judge
函数。(某种程度上来说,
main.cpp
就是输入数据以至于很难做到设计多个测试点。所以可能这个题只有一个测试点)(另一个想法是写一个程序根据输入内容生成相应的
main.cpp
再分别编译,但不知道 UOJ 是否支持)