各位经过艰苦奋战,基本上都按时完成了OOP大作业,各位都给自己鼓鼓掌,大家都很棒!
在OOP作业设计中,也存在不少缺陷(不可靠消息称,B班不写submatrix()
也能过),在这里我向大家道歉。
由于B班不设置code review,同时我也不想在code review的时候把这些话重复无数遍,所以在这里给大家写一些(假装)建议吧
我也看了不少同学们的提交的代码,针对类似OOP这样的偏工程型的代码,提以下几点意见。
- 良好的代码风格,当然大家这次这方面都做得非常好。
- 严防内存泄漏,本次OOP使大家有意识去检查内存问题。虽然因OOP2自带库内存泄漏问题,导致OOP2未检查内存,但下学期数据结构STL依旧会严查内存泄漏和非法内存访问。
- 个人非常反对在工程作业中使用
bits/stdc++.h
头文件,一方面因为这是一个非官方的库,其次引入大量不必要的代码会导致程序庞大,运行常数较大。 - 不建议在工程作业中使用
using namespace std
会造成不必要的函数重名,如要是用,建议将自己写的库包装一个namespace - 提高代码重用率,比如用
+=
去重载+
,减少代码总和,同时避免因多段相同的代码错误漏改而导致的不必要的debug时间 - 注意代码逻辑的清晰性,尽量不要写大段代码在同一函数内,既不方便阅读,也不方便调试。可以利用代码继承和多态来简化代码逻辑
- 灵活使用高版本c++的特性,如智能指针和基础STL等
- 注意时间和空间的常数问题,工程不是算法题,需要考虑常数问题,10倍常数就是1天和10天的区别。
附上写的丑陋的两个OOP代码
欢迎各位批评指正
By 冯思远