【主要思路】
习惯将文字信息用图表表达
基于助教在上篇博客下的留言做出的代码修改,但大部分由于时间关系还没完成;
对于选择条件不复杂的if语句改用switch语句,果然原本冗长的代码一下变得很清楚;
删除过多不必要的注释;
把字符串流对象的实例化调到进入循环之前
Scan::checkNumber(string input)
在本次代码中需要多次使用,将之从在main
中调用改到在Scan::ToStringQueue(string input)
中调用;
【出现的问题】
在修改原代码的时候,为了减少if语句分支,使用了switch语句作为替代,但由于对此类语句较少使用,在使用过程中出现许多问题:其一,需要引用<stdio.h>
类库,其二,开关语句的控制量必须是整型,最初我向switch中传入的控制量为string
类型,得到报错信息“[ERROR]switch quantity not an integer”;
这不是第一次出现内存错误,很明显对于某些知识基础掌握不大好,以及逻辑思维有相当的漏洞。用VS2012调试得到异常信息“0x00007FFA134C11A0 (msvcrt.dll) (Calculator.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突”,知道问题在于内存,暂未解决此问题;
由于要把所有有关打印的内容都放在Print
类当中实现,而我的计算过程基本上是一步到位的,所以我将Scan.h
、Calculation.h
都引用到了Print
类中,然而一开始我采用的其实是友元的方法,但是我们知道面向对象的一个基本原则是封装性和信息隐蔽,而友元却能访问其他类中的私有成员,不能不说这是对封装原则的一种破坏,所以弃用了。
【框架描述图】
posted @
2016-05-10 21:56
雨勤未晴丶
Views(
230 )
Comments()
Edit
收藏
举报