Skip to content

Instantly share code, notes, and snippets.

@Hzfengsy
Last active December 25, 2017 16:11
Show Gist options
  • Save Hzfengsy/020cab8e47d981c5818c5ff73940a503 to your computer and use it in GitHub Desktop.
Save Hzfengsy/020cab8e47d981c5818c5ff73940a503 to your computer and use it in GitHub Desktop.

很不正式的OOP大作业小结

前言

各位经过艰苦奋战,基本上都按时完成了OOP大作业,各位都给自己鼓鼓掌,大家都很棒!
在OOP作业设计中,也存在不少缺陷(不可靠消息称,B班不写submatrix()也能过),在这里我向大家道歉。
由于B班不设置code review,同时我也不想在code review的时候把这些话重复无数遍,所以在这里给大家写一些(假装)建议吧

正文

我也看了不少同学们的提交的代码,针对类似OOP这样的偏工程型的代码,提以下几点意见。

  1. 良好的代码风格,当然大家这次这方面都做得非常好。
  2. 严防内存泄漏,本次OOP使大家有意识去检查内存问题。虽然因OOP2自带库内存泄漏问题,导致OOP2未检查内存,但下学期数据结构STL依旧会严查内存泄漏和非法内存访问。
  3. 个人非常反对在工程作业中使用bits/stdc++.h头文件,一方面因为这是一个非官方的库,其次引入大量不必要的代码会导致程序庞大,运行常数较大。
  4. 不建议在工程作业中使用using namespace std 会造成不必要的函数重名,如要是用,建议将自己写的库包装一个namespace
  5. 提高代码重用率,比如用+=去重载+,减少代码总和,同时避免因多段相同的代码错误漏改而导致的不必要的debug时间
  6. 注意代码逻辑的清晰性,尽量不要写大段代码在同一函数内,既不方便阅读,也不方便调试。可以利用代码继承和多态来简化代码逻辑
  7. 灵活使用高版本c++的特性,如智能指针和基础STL等
  8. 注意时间和空间的常数问题,工程不是算法题,需要考虑常数问题,10倍常数就是1天和10天的区别。

附录

附上写的丑陋的两个OOP代码

  1. https://github.com/Hzfengsy/2017-OOP1-Matrix
  2. https://github.com/Hzfengsy/Basic-Language-Interpreter

欢迎各位批评指正

By 冯思远

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment