欢迎来到天天文库
浏览记录
ID:32604717
大小:61.57 KB
页数:16页
时间:2019-02-13
《软考软件设计师考前辅导》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软考软件设计师考前辅导:C++强大的原因C++在几乎所有的计算环境中都非常普及:个人电脑、Unix工作站和大型计算机。如果考察一下新编程语言的发展史,就可以看出C++的这种普及率是非常高的。用以前的语言编写的程序量非常大,这无疑会降低对新语言的接受程度。除此以外,大多数专业软件设计师总是愿意使用他们已熟知的、使用起来得心应手的语言,而不是转而使用新的、不熟悉的语言,花大量的时间来研究其特性。当然,C++是建立在C的基础之上(在C++出现之前,许多环境都使用C语言),这对于C++的普及有很大的帮助,但是C++的流行远不只是这一个原因。C++有许多优点: C++适用的应用程序
2、范围极广。C++可以用于几乎所有的应用程序,从字处理应用程序到科学应用程序,从操作系统组件到计算机游戏等。 C++从C中继承了过程编程方式的高效性,并集成了面向对象编程方式的功能。 C++在其标准库中提供了大量的功能。 有许多商业C++库支持数量众多的操作系统环境和专门的应用程序。 因为几乎所有的计算机都可以使用C++编程,所以C++语言普及到几乎所有的计算机平台上。也就是说,把用C++编写的程序从一台机器迁移到另一台机器上不需要费什么力气。当然,如果这个过程真的非常简单,那么编写在另一台机器上运行的程序时就需要考虑使用C++语言了。 C++的ANSI标准 标准
3、化是把所编写的程序从一种类型的计算机迁移到另一种类型的计算机上的基础。标准的建立使语言在各种机器上的实现保持一致。在所有相容编译器上都可用的一组标准功能意味着,用户总是能确定下一步会获得什么结果。使用ANSI标准后,C++使应用程序可以轻松地在不同的机器之间迁移,缓解了在多个环境上运行的应用程序的维护问题。 当然,还有其他问题需要考虑。如果程序是可以移植的,那么就不能把非标准库中的特性引入代码,还必须使程序对建立该程序所使用的开发机器的依赖性降到最低,否则迁移代码就很困难。 C++的ANSI标准还有另一个优点:它对用C++编程所需要学习的部分进行了标准化。这个标准将使后
4、续的程序具有一致性,因为它只为C++编译器和库提供了一个定义参考。在编写编译器时,该标准的存在也使编写人员不再需要许可。软考软件设计师考前辅导:异常的使用心得工欲善其事,必先利其器。在做一个项目时必定要先做好调试除错的预备在面向过程编程的时代都是以检测返回的错误代码来判定错误,可是这种方法的缺点是假如编写某一操作的时候可能出现的错误代码(比如说硬件操作)太多,那么最终用户将会陷入倒无穷无尽的检测代码中,可能会是这个样子 UINTerr=Functionxx(…); if(err==xxx) … if(err==xxx) … … … 省略100行 只有这样程
5、序才能在出现意外的时候有所相应和恢复,但是由于错误处理太庞大了最终用户很可能这样 if(Functionxx()!=SUCEEDED) exit(0); 这样某些可能可以恢复的操作也无法幸免了,(比如说网络连接超时,终止运行太过分了吧,只要弹出个对话框就行了) 在面向对象编程的时候,不可否认,很多人仍然还是这样排错的,其实各种面向对象的语言都提供了异常处理的手段(比如说ObjectPascal,C++,本文以C++为例) 下面是我的关于异常的一些使专心得 对于各种用户来说,并不是每一种错误都是他关心的,非凡是小组开发的时候比如某一模块是关于文件操作的,那么编写这
6、个模块的程序员只要注重关于文件操作失败的异常就行了,而网络模块的程序员只要知道网络出错的错误处理就行了,因此,我们可以定义一个这样的类 classCBasicException { CBasicException(…); char*GetDescription(); UINTGetErrorCode(); … }; 然后再从这个类继续几个子类 CFileException,CNetException… 然后和具体某一类错误相关的具体的异常分别从上面的类里面继续,比如文件打开失败,空间不够等等可以从CFileException继续,而连接超时等等可以从CN
7、etException继续,如此一来就将错误分类了整个类层次是这样的 CBasicException / CFileExceptionCNetException // COpenFailed…CTimeOut…进入讨论组讨论。之后将各个错误码和相应的异常对应起来,一些不太重要的信息可以封装在一个异常里,比如文件打不开可能是空间不够或共享冲突…,都可以放在一起,假如以后要专门处理某一样,比如空间不够,再从相应的基类继续即可(COpenFialed) 然后你的函数应该这样实现 CMyfunc()
此文档下载收益归作者所有