JianGuanTHU / UOJ_Offline

Offline test system for THUOOP
7 stars 0 forks source link

Proposal (第五次作业,继承判断) #28

Closed Fuyuky closed 2 years ago

Fuyuky commented 2 years ago

考点

类的继承、模板

题目大意

编写一个模板函数 judge,来判断类 $B$ 是否是由 $A$ 经过若干次(可能为零次或超过一次)继承得到。

在本题中不考虑多重继承的情况。

judge.h

template<class A,class B>bool judge();

参考的 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

all : main.cpp judge.cpp
    g++ main.cpp judge.cpp -omain -O2

选手需完善文件 judge.cpp,评测时会将 judge.hmain.cpp 拷贝进代码目录。

实际测试时,main.cpp 中会包含更多的类型和调用更多次 judge 函数。

(某种程度上来说,main.cpp 就是输入数据以至于很难做到设计多个测试点。所以可能这个题只有一个测试点)

(另一个想法是写一个程序根据输入内容生成相应的 main.cpp 再分别编译,但不知道 UOJ 是否支持)

hzhwcmhf commented 2 years ago

我感觉这部分好像用stl函数直接就能解决,只是考查知识面的话不太合适?而且工作量也太少了

另一个想法是写一个程序根据输入内容生成相应的 main.cpp 再分别编译,但不知道 UOJ 是否支持

支持,看37题的例子

hzhwcmhf commented 2 years ago

因没有后续更新取消