前言
C++语言是一种使用非常广泛的计算机编程语言。它支持过程化程序设计、面向对象程序设计和泛型程序设计等多种程序设计风格。另外,C++语言虽然从C语言发展而来,但它并不依赖C语言,我们可以完全不学C语言,而直接学习C++语言,C++语言可以作为程序设计的入门语言。
C++语言的发展大概可以分为三个阶段: 第一阶段从20世纪80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大的份额。第二阶段从1995年到2000年。这一阶段由于标准模板库(Standard Template Library,STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击。第三阶段从2000年至今。由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上的又一个新高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员。
我们目前所用的相当多数软件都是用C++语言编写的。主流的三种操作系统Windows、Linux和UNIX的内核都是用C语言和汇编语言编写的,上层高级特性是用C++语言编写的。“魔兽世界”、CS等几乎所有的网络游戏以及百度搜索引擎都是用C++语言编写的。C++语言的优势及魅力不言而喻。
本书编者综合了教学及软件设计经验,使得本书既具有较强的理论性,又具有较强的实用性。本书编写的目的就是希望读者能够编写出规范的、稳定的程序。它不仅仅是一本纯粹的C++语言的语法书,书中很多语法是通过实例引出的,使读者可以在有趣、高效的应用中领悟枯燥的语法。为了巩固其中灵活、难解的语法知识,每章都有配套习题。另外,为了让读者能够写出规范的程序,配套有编程基本规范的内容; 为了让读者能够写出稳定的程序,配套有程序调试基本方法的内容。看似内容庞大,但本书的可读性强,每个核心内容力求言简意赅,尽量用应用实例来进行解说。总的来说,本书信息量大,综合面广,实用性强,可读性好,在同类教材中有很鲜明的特色。
全书共分为24章。其中,前20章是本书的主体,第1~第9章以面向过程为基础介绍C++的基本语法和数据类型,第10~第20章介绍面向对象知识以及C++面向对象的程序设计特征和方法,这些章节都附有习题,部分章节还附有应用实例。本书的最后4章介绍了使用C++程序设计必备的其他知识,第21章介绍了Microsoft公司推出的Visual C++集成开发环境。Visual C++集成开发环境提供了建立控制台应用程序的方法,为学习和掌握C++语言提供了非常好的开发环境,同时,它又很好地利用了C++语言,并提供了大量的MFC(Microsoft Foundation Class)基础类库、应用程序向导和“可视化”的资源编辑器,这为程序员快速而高效地开发出Windows应用程序提供了方便。考虑到将本书作为“Windows编程”课程的参考书,第22章介绍了怎样基于MFC开发Windows应用程序。为了做到知识的全面性和实用性,第23章介绍了编程的基本规范,第24章介绍了调试程序的基本方法。
本书内容全面,不仅适合于教学,也适合于用Visual C++开发Windows应用程序的用户参考。如果作为教材,建议将第23章、第24章在恰当的时候穿插在前面章节讲解。
本书由叶焕倬主编,向华丽策划,向华丽、吴良霞、周晓华、程传慧和鲁敏等老师参与了初稿的编写。全书由叶焕倬统稿,叶焕倬、屈振新、鲁敏、胡雨林审稿,高芳、何玉凝参与了校对,张露露和鲁敏参与了排版和统一格式的工作。清华大学出版社的员工为本书的完成付出了大量的劳动,在此特致谢意。
由于编者水平有限,书中不当、错误之处在所难免,敬请读者批评指正。
编者
2009年3月
于晓南湖