图书前言

前言

C++语言是从C语言继承发展而来的一种高效实用的程序设计语言。一方面C++语言全面兼容C语言; 另一方面C++语言支持面向对象的方法,实现了类的封装、数据隐藏、继承及多态性,使得其代码容易维护且高度可重用。

本书作为C++语言的入门教材,不仅详细介绍了C++语言本身,还深入讲述了面向对象的程序设计方法。本书的主要特色如下:  

(1) 强调基本概念、基本语法、基本结构,不深究语法的细节,从宏观上把握程序的结构。

C++的许多概念如函数、指针、类等是掌握C++语言的重要基础。本书在对概念的讲解上,注重强调这些概念在编程中的作用及其所实现的功能,而不去罗列一些具体的语法细节和特例。

(2) 注重模块化的程序设计,注重模仿,强调规范化的程序结构,不提倡过多的编程技巧和个人风格。

开发C++语言的初衷是为了应对软件危机,解决大型软件开发时遇到的问题,提高软件的开发效率。虽然本书的读者对象是没有编程基础的初学者,通过本书所能接触到的也只是一些相对简单的程序,但程序结构的设计和编程习惯的培养却正是从初学时开始的。因此,本书所涉及的概念、算法、语法包括例题的讲解都强调规范化、结构化,引导读者做适当的模仿,从基本程序的学习开始就养成规范编程的习惯。

(3) 通俗易懂。众所周知,C++语言概念众多,叙述复杂,语法灵活,很难用浅显直白的语言去诠释这些内容。本书利用大量的图示说明,把复杂的概念、算法用图形的形式描述出来,使读者有一个形象直观的认识。

全书共分两部分。第一部分是C++语言基础,共8章。第1章C++基础知识,介绍C++的发展历史、面向对象程序设计的概念和C++程序的开发过程; 第2章基本数据类型与表达式,介绍C++语言的基本数据类型、运算符与表达式,以及数据类型转换、简单输入输出语句等; 第3章基本流程控制结构,介绍结构化程序的设计方法和与三种控制结构(顺序、选择和循环结构)相关联的语法知识及其控制语句,其中标有*号的章节为选讲的内容; 第4章函数,介绍函数的定义与调用、内联函数、函数重载以及函数的作用域等; 第5章编译预处理,介绍编译预处理的知识以及三种预处理指令——宏、文件包含和条件编译; 第6章数组,介绍一维数组和二维数组的定义与引用,数组名作为函数参数的应用,字符数组与字符串的应用; 第7章指针,介绍指针与指针变量的概念、指针运算、指针数组、函数指针、指向指针的指针等; 第8章结构体和共用体,介绍C++的构造数据类型,包括结构体、共用体和枚举,对单向链表的各种操作也做了详细的说明。第二部分是面向对象程序设计基础,共8章。第9章类和对象,介绍面向对象程序设计的基本要素、类和对象的定义方法、对象的初始化、this指针等; 第10章构造函数和析构函数,介绍默认的构造函数、构造函数的重载、复制的构造函数和默认及显式定义的析构函数; 第11章静态成员与友元,介绍静态数据成员和静态成员函数,友元函数和友元类; 第12章运算符重载,介绍单目与双目运算符的重载,包括重载成为成员函数或友元函数在定义格式及应用中的区别; 第13章继承和派生,介绍基类和派生类、单继承、多继承和虚基类,继承中冲突的解决和支配规则等; 第14章虚函数,介绍虚函数与运行时的多态性的概念,包括虚函数的作用和功能、虚函数的应用、纯虚函数和抽象类等; 第15章输入输出流,介绍I/O标准流类、键盘输入和屏幕输出、磁盘文件的输入输出等; 第16章C++工具,介绍模板的概念和异常处理,该章内容是选学内容。

本书所列举的例题、习题均在Visual Studio 2010下调试通过。

本书有配套的教学参考书《C++程序设计上机实践与学习辅导(第三版)》,内有16个单元的上机实验内容,同时与书中的章节相对应,针对学习中的难点,补充了大量的例题讲解和各种典型的习题,并有6套模拟试卷及习题解答。

在本书的编写过程中,编者参阅了许多C++的参考书和有关资料,谨向这些书的作者表示衷心的感谢!

本书由朱红、赵琦、王庆宝编著,在本书的编著过程中,闫玉德、王芳、钱芸生、陈文建、朱近、刘明、刘永、张微、俞虹、蔡骅、靳从等对本书的内容提出了很多宝贵意见,在此一并表示衷心的感谢。

由于作者水平有限,书中难免有错误之处,恳请读者批评指正。

作者

2019年1月