zoukankan      html  css  js  c++  java
  • 面向对象程序设计作业三

    Git地址

    前言

    先来说说,对之前第二次作业的感受,我个人是受益匪浅的,因为是三部电梯同时进行,我放弃了之前暑假写的面向过程的电梯项目,此次在第二次作业的基础上,重新写了一个有了点面向对象味道的电梯,感觉很嗨很痛苦。


    遇到的问难和解决方案

    • 我的电梯以时间轴运行,因此时间应该定义在电梯类外,当成全局变量来实现,可是发现,在main.cppElevator.hElevator.cpp中报没有定义的错,定义了后编译又报重复定义,顿时一脸懵逼,百度后发现了extern,总算知道了这个用法了,感动!除此之外,还可以新建一个头文件来存储这个全局变量,不过太麻烦,我就没有着手操作了。
    • 在第二次作业中写了一个Passenger类用来存储乘客的请求,用的是创建动态对象数组来实现的,在main函数电梯类里都需要用到,不能定义两遍,extern也搞不定,一直报如图的错,最后放弃希望,把Passenger类改写成电梯类的类外结构体
    • 写了一个2号电梯类,1号和3号继承自2号,因为对类和对象还不熟悉,在这里被坑了好惨,单步调试了好久才出来。问题是:2号电梯类写了一个方法run(),里面调用了get()put()方法,其中get()put()在1号和3号电梯中重载了,我天真的以为编译器会调用相应类的方法,没想到我调用3号电梯的run(),他却调用2号电梯的put(),比小孩还皮。血的教训,于是把所有类的run()重载了ヾ(゚∀゚ゞ)
      最后一个很简单的问题,文件输入输出的,一开始纳闷怎么输出永远只有一行,是不是码错了,于是使用了ios::app;接着发现输出文档会保存上次输出的结果,感觉也没什么大碍,问了学姐果断.clear()

    类图如下↓↓↓


    c语言实现思想

    用结构体来实现电梯,好像和c++没什么太大区别,是我还没深入使用类吧(●ˇ∀ˇ●)。

  • 相关阅读:
    Java的内存区域划分
    Java中的浮点型进行四则运算精度丢失的问题
    单例模式的几种写法
    如何掌握一门工具及对工具的认识
    记一个命运多舛的项目总结
    几个超级好用但很少有人知道的 webstorm技巧
    如何自定义中间件,实现业务代码无侵入监控及拦截
    如何减少和处理死锁
    快照读与加锁读
    谈谈Java常用类库中的设计模式
  • 原文地址:https://www.cnblogs.com/elis/p/9033318.html
Copyright © 2011-2022 走看看