更好的设计面向对象的C++语言
C++语言以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用,C语言简洁、高效,但是C语言也有其自身的缺点,例如弱的类型检查机制等,使得使用C语言开发大型的应用程序比较困难。
面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C++完美地体现了面向对象的各种特性。刚开始形成的是c语言,那些想建立更快更有效的代码的程序员非常欣赏c语言,有一位名叫bjarne stroustrup的人却不满足于仅仅是生产快速代码,他想创建面向对象的c语言编程。他开始对c语言的内核进行必要的修改,使其能满足面向对象模型的要求。C++从此产生。
bjarne stroustrup是C++的最初设计者和实现者。它自诞生以来,经过开发和扩充已成一种完全成熟的编程语言。现在C++已由ansi、bsi、din、其他几个国家标准机构和iso定为标准。iso标准于1997年11月4日经投票正式通过。
C++标准演变了许多年。C++模板是近几年来对此语言的一种扩展,模板是根据类型参数来产生函数和类的机制,有时也称模板为“参数化的类型”。使用模板,可以设计一个对许多类型的数据进行操作的类,而不需要为每个类型的数据建立一个单独的类。标准模板库(standard tempalte library,stl )和微软的活动模板库(active tempalte library,atl )都基于这个C++语言扩展。
C++标准可分为两部分, C++语言本身和C++标准库。C++标准库对于visual C++是相当新的,实际上微软只是在发布visual C++ 5.0时去除了一些“bug”。标准库提供了标准的输入/输出、字符串、容器(如矢量、列表和映射等)、非数值运算(如排序、搜索和合并等)和对数值计算的支持。应该说, c/C++包含了相对少的关键字,而且很多最有用的函数都来源于库,C++标准库实现容器和算法的部分就是stl。
stl是数据结构和算法的一个框架,数据结构包括矢量、列表和映射等,算法包括这些数据结构的查找、拷贝和排序等。1994年7月,ansi/iso C++标准委员会投票决定接受stl为C++标准库的一部分,这个建议是根据alex stepanov、meng lee和david musser这三人的编程和软件库研究提出的。stl的产生是为了满足通用性的设计目标,而不是为了提高性能。
那么微软对C++标准的态度怎什么样?微软运行vC++与plum-hall C++,想比较得到的分数在92%和93%之间。为什么不是100%的一个原因是跟踪这个标准并同时建立一个编译器比较困难,微软也考虑了对现有编码兼容的重要性,有时他们不得不偏离标准以保持这个兼容性。
C++的发展
第一阶段从80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,在工业界使用的开发语言中占据了相当大份额;
第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性;
第三阶段从2000年至今,由于产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,使C++已经成为当今主流程序设计语言中最复杂的一员。
一,算法研究,注重理论研究和基层编程技能的积累。多参加编程竞赛。
二,学习j2ee或者c#,同时了解数据库应用。
三,网络编程,做网页,熟悉网页三剑客,无论哪个剑客学到无敌了,都是前途无量,还要熟悉相关的网页开发工具。
应该有充分的理由使用C++创建服务器组件,而不只是为了给上司一个好印象才使用C++。如果以前没用过C++,你必须要尽力学习。
1. 性能
性能有个两方面,算法速度和机器代码效率。一个算法可以定义为数据通过系统的概念化的路径,它描述一些点,在这些点上,数据能够被操作并可转换产生某个结果。例如,一个算法定义为获取一个字符串,计算字符串中的字符个数,并作为结果返回的过程。算法与
语言是独立的,所以在编程之前必须设计算法,编写一个快速程序的第一个步骤是设计良好的算法,能以最少的操作步骤得出问题的答案。第二个步是选择语言,这也影响程序的速度。
从性能的角度考虑,用汇编语言编写程序是最佳的选择,它是计算机能理解的自然语言。但是,几乎没有人用汇编语言编写完整的程序,因为这样做极其乏味。另一个最佳的选择是c语言。然而,由C++语言提供的所有工具都产生C++,而不是c。使用C++的向导可以生成大量的使用代码,而不必人工地编写代码。从编写程序的难易程度和程序的性能综合考虑, C++是最佳的选择。