最近开始对C++编译器进行学习,去各大书店买了一些关于C++和C++编译器的书。看完后觉得C++跟C基本没什么太大的区别,C++***的有点就是方便快捷,运行速度也有了大幅度提高。
这样就带来一个很奇怪的问题,如果我们把一个NULL值随便转换成一个其他类型,那么C++编译器会非常正常的调用到对应的方法,这样有好处,也有坏处,好处是C++追求的速度得到了,但是坏处是,逻辑会变得很古怪。
除了这个以外,C++里面的构造函数也还真够复杂的,复制构造函数,赋值构造函数,如果把类型转换那套加进去,一个值在运行时到底是什么类型,还真是要慢慢研究。另外由于C++号称是一个enhance版的C。
所以,把C的那套都带进去了,变量类型搞得无比复杂,在原来的变量,指针之外,还要再加上引用。 这么复杂,真是何苦了。
还有一个不能不说的是。
今天刚看到了异常处理,发现异常处理还要到达方法级,实在古怪,而导致这个问题的原因就是,C++在变量声明时,不是将他初始为默认值,例如NULL之类,而是调用它的缺省构造函数。因为这个,又导致了构造函数声明时要带个列表,这样就会导致进入构造函数前就抛出了异常,ai,简简单单的一个问题搞得那么复杂,实在让人抓狂。
C++程序良好的可移植性使得C++语言成为程序设计人员的***工具语言,而保证这一特性必需使用标准化的C++编码。国内高校尤其是高职院校的教材中,存在着大量非标准化的C++程序,不利于培养具有标准化C++编程风格的学生。
本文从C++发展史、教育工作者和教材规范化等多个角度出发,分析了这一问题产生的原因,并提出了相应的解决办法。 1983年***个C++程序投入使用,1994年8月,ansi/iso委员会草案登记,这便是业内所称的早期的C++标准。
1998年11月,iso/iec:98-14882标准(以下简称98标准)被批准,标志着C++代码的标准化正式诞生[1]。C++语言诞生以来,延续了c语言的重要特征,即C++源程序良好的可移植性。正是这一特性,使得C++编译器长期以来一直是程序开发人员的***。 C++语言良好的可移植性是它具有较强生命力的关键所在。目前标准委员会正在修订C++标准,并拟于2009年发布修订后的09标准。
【编辑推荐】