主要上传2020年THU开设的OOP课程所布置的作业答案代码以及UOJ上另外一些题目的答案代码。
更新了目前已经有的答案代码。
简单做了几道题,结果发现自己C++的语法已经忘得差不多了,有些奇怪的bug还是整不动;
-
#27交上去就是Dangerous syscalls
-
计算图那条到现在还只有10分
感觉再这样下去OOP要挂科了啊。
据说8.23考OOP,瞬间有点慌张,就先做了几道题练练手;还好收效比之前要好得多;
不过倒是有点懵,感觉C++的内存管理和多态实在是太细节了,好多时候都写得一愣一愣,AC了都弄不明白;
比如说这样的一个东西吧:
class Base {
public:
virtual std::string get() {return "Base";}
virtual ~Base() {
if (get() == "Base") std::cout << "Alert" << std::endl;
}
};
class Derive: public Base {
public:
virtual std::string get() {return "Derive";}
virtual ~Derive() {}
};
int main() {
Base* d = new Derive;
delete b;
return 0;
}
这就是简单的“虚机制不在构造函数以及析构函数之中起作用”的DEMO代码,然而我在做题的时候却忘掉了,导致一道水题卡了好一会;
反正好多细节上的东西要复习了。
写了第37题的简单题目解答;并且简单做完了38题,也算是学到了数组的引用这个奇怪的小知识点:
int a[5] = {1, 2, 3, 4, 5};
int (&ref)[5] = a;
// ref是数组的引用
OOP明天考试了,就拼命刷了几道题=_=
计算图那条算是我算法想错了,表达式求值那道题也确实是我过于智障(丢脸代码已删)
明天四条,求求AC三条吧(其实全AC我也是很乐意的)
今天是OOP考试了,现在是16:23,目前四道题已经全部AC,考虑到OJ100%,也就是代表我OOP课程圆满结束了。所以也就在readme里面写一下这次考试的感觉吧。
A题是白送的,直接写就好了。
B题虽然给了一大堆背景,实际上还是考察的dynamic_cast
转换指针失败返回nullptr
,再注意一下动物只能移动,加一个std::move
就可以直接AC了。
C题考策略模式,实际上框架都给你写好了,照着稍微写写盲交就能AC。
这三道题用了我半小时,所以送分还是到位的。
D题又是喜闻乐见的“小明的xxx”,这次考了动态类型。四个subtask分别考构造、operator+=
的编写、VectorContent
类的编写以及operator[]
的编写。
题目考查的一个标准就是内存不能泄漏,但实际上到最后给你的代码里面已经用注释写好了“为什么不试试shared_ptr
呢?”(直球)
之后就是把原来代码码风改改,小错误修修(基本上都是IDE自动提示的错误),之后就是巨大使用dynamic_cast
硬搞(我觉得可能是我的问题)
最后还有几个地方稍微偷鸡,比如用std::cout
代替了out
,以及故意不用const Content&
之类的(不过OJ100%不就应该这样吗?)
小注解:关于OJ100%偷鸡,之前在魔兽争霸II那道题里面我倒是真·偷鸡了一把(不要打我,原题要考的是装饰器)
到这里就暂时结束了,以后这个仓库应该就不会再更新了吧qwq