第1章 概述
C++语言是面向对象程序设计语言,学习和掌握C++语言将会使读者在今后的软件开发中受益匪浅。本章 首先向读者介绍C++语言的发展过程及它与C语言的关系,然后逐一的向读者介绍C++语言的特点、开发过程及简单的C++程序,*后对VisualC++6.0的基本用法做了简单介绍。本章 的学习使读者能掌握C++语言的特点及开发过程,并能设计简单的C++小程序。
1.1 C++语言的历史
1.1.1 C++语言的诞生
C++语言是从C语言发展而来的,而C语言的历史可以追溯到1969年。在1969年,美国贝尔实验室的KenThompson为DECPDP-7计算机设计了一个操作系统,这就是*早的UNIX。接着,他又根据剑桥大学的MartinRichards设计的BCPL语言为UNIX设计了一种便于编写系统软件的语言,命名为B。作为系统软件编程语言的**个应用,KenThompson使用B语言重写了其自身的解释程序。1972-1973年间,同在贝尔实验室的DenisRitchie改造了B语言,为其添加了数据类型的概念,并将原来的解释程序改写为可以在直接生成机器代码的编译程序,然后将其命名为C。1973年,KenThompson小组在PDP-11上用C语言重新改写了UNIX的内核。与此同时,C语言的编译程序也被移植到IBM360/370,Honeywell11及VAX-11/780等多种计算机上,迅速成为应用*广泛的系统程序设计语言。
然而,C语言也存在一些缺陷,如类型检查机制相对较弱,缺少支持代码重用的机制等,造成用C语言开发大型程序比较困难。为了克服C语言存在的缺点,贝尔实验室的BjarneStroustrup博士及其同事开始对C语言进行改进和扩充,将“类”的概念引入了C语言,构成了*早的C++语言(1983)。后来,Stroustrup和他的同事们又为C++语言引进了运算符重载、引用、虚函数等许多特性,并使之更加精炼,于1989后推出了AT&TC++2.0版。随后美国**标准化协会ANSI(AmericanNationalStandardInstiute)和国际标准化组织ISO(InternationalStandardsOrganization)一起进行了标准化工作,并于1998年正式发布了C++语言的国际标准ISO/IEC:98-14882。各软件商推出的C++语言编译器都支持该标准,并有不同程度的拓展。C++语言支持面向对象的程序设计方法,特别适合于中型和大型的软件开发项目,从开发时间、费用到软件的重用性、可扩充性、可维护性和可靠性等方面,C++语言均具有很大的优越性。同时,C++语言又是C语言的一个超集,这就使得许多C语言代码不经修改就可被C++语言编译通过。
计算机程序设计语言发展至今,c++仍然足应用*广泛的语言,这不仅仅因为C++是由C语言发展而来,具有较长的历史背景和颇具规模的应用人群,更重要的是C++语言是当前众多**语言中抽象性*好、对而向对象程序设计思想支持*彻底的语言,而这一特点正是应对不断增加的软件工程的复杂度时所必须具备的。此外,C++语言完全兼容C语言,在各种硬件平台上可移植性好,并且作为一种**语言,比汇编语言更易于掌握。因此,C++程序设计课程不仅是计算机专业的核心基础课程,而且已经作为一门公共基础课程在工科各专业中得到普及。
对于学习C++语言是不是必须要先学习C语言的讨论,至今没有人能给出确切的答案,而事实上,完全不需要用这样的讨论来为初学者增加困扰,因为作为一个完整的程序设计语言体系,它所能解决的问题可简可繁,它所具备的特性有一般的、初级的,也有特殊的、**的。本书在编排上就是按照这一规律,将C++语言中*基本的语法知识集中在**部分阐述,有人可能会认为它是对c子集的一个介绍,但是需要注意的是,这种理解有偏颇,因为诸如引用、内联等特性是C语言所不具备的。c++语言*引以为傲的部分,即抽象、封装、继承和多态等机制,在第二部分中为读者一展开,从中可以逐步体会C++语言面向对象程序设计思想是如何提高软件设计与开发效率的。*后一部分是C++语言体系中解决工程问题不可或缺的一些**特性,并有综合开发实例强化学习效果。
C++作为一门程序设计语占,其学习的*终目的是应用,本书编写的主旨亦为尽可能使学习者*快地理解C++语言的精髓,掌握其技术,所以除必要的思想陈述和概念解释外,在行文中避免使用高深莫测的语句,而是使用设问及解答的方式,既引出相关知识和技术又表明其意义,缩短了课堂学习与编程实践的距离。因此,本书尤其适合于侧重应用能力培养的高等院校及应用型本科院校,也是当今全国范围内进行课程改革的大形势下,转变学生为学而学、学而不能用的尴尬局面的一次实践。
本书第1,2,3章由王婧编写,第4,5,6章由龚丹编写,第7,8,9,10章由梁兴柱编写,第1l,12,13,14章由吕志峰、陈艳共同编写,刘振宇、张振蕊、邓琨也参与了部分编写工作。特别感谢高洪志和王建一老师审阅了本书,并提出了许多宝贵建议。
本书所有实例均使用Visual studio c++6.0集成开发环境测试通过,.配套的实例代码及各章习题参考答案等教学资源可从华信教育资源网(http://www.hXedu.com.cn)上免费下载。