设为首页 加入收藏

TOP

19.6 把函数的内容移入成员函数(2)
2013-10-07 01:02:20 来源: 作者: 【 】 浏览:74
Tags:19.6 函数 内容 移入 成员

接下来,我们看一下对SelfTest()函数的更改,如代码清单19-6所示。

代码清单19-6 aController的SelfTest()函数

 
 

第3行与结构化版本明显不同:SelfTest()函数实例化anAc- cumulator并执行所有测试,而不是只测试myAccumulator。这样可以避免破坏当前计算器的内部状态,并且可以简化测试。TestOK()函数被修改成通过参数传递对象,其调用如第9行~第14行所示。

当执行完SelfTest()时,SelfTest()的TestAccumulator会被销毁。这对aController的myAccumulator没有任何影响。

第12行用aRequest构造函数创建临时对象,作为实参传给TestOK()用来在测试中使用。

接下来,我们看一下由main()传给aController构造函数引用的用法,如代码清单19-7所示。

代码清单19-7 aController的DisplayTape()函数

  

第7行,myExternalInterface的函数DisplayRequest()用来负责显示调用Operator()和Operand()的结果。

最后,Operate()函数实现了真正的控制计算器的代码,如代码清单19-8所示。

代码清单19-8 aController的Operate()函数

  

  

第3行从myExternalInterface获得aRequest。只要Operator()不是aRequest::stop,第5行就一直循环。

第9行展示了switch语句可以在aRequest类中嵌套使用enum。

第11行、第16行和第21行基于第9行测试Request.Operator()的结果分别处理不同的情况。

第28行和第29行使用myTape和myAccumulator执行计算器核心的函数。

为了不让循环被打断,第35行和第39行捕获了所有的异常。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇12.3 for循环 下一篇19.6 把函数的内容移入成员函数..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: