第十一章程序设计 面向对象软件构造.pptVIP

第十一章程序设计 面向对象软件构造.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一章程序设计 面向对象软件构造

程序设计基础 第十一章 面向对象软件构造 第十一章 面向对象软件构造 11.1 软件质量 一、软件危机 20世纪60年代后期,由于计算机软件的规模和复杂性的增大,又由于软件开发的合作需求的增强,使得以前的软件开发过程和控制方法,无法保证软件项目的开发周期和开发成本的要求,这就产生了整个软件行业的生产效率低下,这被称为软件危机。 二、软件工程 为了解决软件危机,人们不得不研究软件开发的一般规律,试图找到一系列的理论方法来指导和规范软件开发的过程,这就产生了软件工程这门工程学科。其中软件质量和软件开发模式是关注的重点。 三、软件质量 包括正确性、健壮性、可扩展性、可重用性、有效性等。 面向对象程序设计特别强调:可靠性和可扩展性、可重 用性。 一、程序断言 形式上看是一种逻辑表达式,称为assertion。 作用: (1)保证程序的正确性与健壮性 (2)可用于形成程序的文档 (3)支持程序的动态调试 (4)构成异常处理的基础 二、程序断言的用法 由于在C++中,仅支持很少的程序断言机制,所 以我们可以参考一些别的程序语言的用法,并将这些 断言写在C++语言的注释中。 三、C++语言中的程序断言 利用assert宏(需包含assert.h)来实现。 用法如下: void assert(int expression); 当检测条件expression不满足的时候,产生一个 断言,在标准错误输出流上输出信息,并中止程序执行 Assertion failed:expression filefilename,linelinenum 注意:在程序的release版本中,assert不起任何作用, expression不被执行。 例: #includeiostream.h #include assert.h #include string.h void analyze_string( char *string ); int main( void ) { char test1[] = abc, *test2 = NULL, test3[] = ; cout test1 ; analyze_string( test1 ); cout test2 ; analyze_string( test2 ); cout test3 ; analyze_string( test3 ); } void analyze_string( char * string ) { assert( string != NULL ); assert( *string != \0 ); assert( strlen( string ) 2 ); } 在VC++中,还有两个类似的宏 VERIFY和ASSERT当 debug版本时,VERIFY和ASSERT与assert没有区别。但是 当是release版本时,VERIFY执行expression,但是不产 生中断。而ASSERT不执行expression 当在程序执行的过程中出现了一些不平常的情况,或 运行结果无法定义的情况,而使操作不得不中断时,我们 说程序出现了异常。 对于异常情况的处理,C++具有自己的异常处理机 制,其基本思想是:将异常的检验和处理分开,当一个函 数体中检测到异常条件的存在,而无法确定相应的处理方 法时,将引发一个异常,并由函数自己或者函数的直接、 间接调用者检测并处理这个异常。 一、C++异常处理机制的使用 (1)我们使用try语句来监测异常情况,catch语句来处 理捕获和处理异常,用throw语句抛出异常。 说明: try块和catch列表被总称为try语句,其中的catch列 表中的每个项被称为一个异常处理程序。如果try块被正 常执行而没有出现异常,则异常处理程序不被执行,程序 接着执行try语句之后的语句。如果try块的执行导致一个 异常被引发,则try块中在异常引发之后的操作不再被执 行,控制转移到该try语句的某个异常处理程序中进行,在 该异常处理程序被执行完之后,程序开始执行try语句之 后的语句。 如果引发了异常,但try语句没有申明处理这个异 常,则控制又转移到该try语句所在的函数的调用函数中。 在该调用函数中使用相同的规则去寻找一个异常处理程序。 这个过程一直进行到该异常被我们的程序处理,或被C++ 运行系统处理为止。如果异常被C++运行系统处理,程序 将被终止运行,我们成这种终止为异常终止。 (2)throw的用法 throw 变量或常量; 表示在try块中抛出与变量或常量相

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档