2017《面向对象程序设计》课程作业五
设计类图
这次的类图对上一次设计好了的类图进行了改善,也保证了栋哥要求的“类是一个名词”的定义,在代码上也丰富了类之间的设计以及类里面的设计,类与类之间的互动也更强了一些。
git链接
对于栈的学习
使用栈所需的头文件#include
X.empty() 如果栈为空返回true,否则返回false
X.size() 返回栈中元素的个数
X.pop() 删除栈顶元素但不返回其值
X.top() 返回栈顶的元素
X.push() 压入栈
stack<type> tom;//栈的定义
由于之前做过PTA上模拟队列的题,也在看了相关的栈的知识之后,对栈有了更深的理解,不过印象比较深刻的还是栈与堆的差别:栈是由系统分配的,而堆则是我们自己去申请的,相较还是堆会灵活一些,但是栈的效率却要高出许多,我想这也是为什么要进行对栈深入学习的原因吧
本次作业的感想
这次作业跟上一次的作业很好地结合在了一起,类似是上次主体是理论,这次主体是实践,固然分析十分重要,但是想分析设计实现的这一步也很重要,过程中有试图使用最近刚学的友元函数,虽然这样会使得代码更简洁,但是有违C++封装的一个宗旨,所以最后也没有采用这种方法。