内容提要
本书是为已经掌握C语言知识,需要学习C++语言的读者编写的一本C++语言入门教材。
全书共分为8章。第1章通过与面向过程的程序设计方法的简单对比,初步介绍面向对象程序设计方法;第2章介绍C++语言在支持面向过程的程序设计方面对C语言的改进及扩充;第3章~第6章以面向对象程序设计的封装性、继承性和多态性这三大主要特征为主线组织内容,系统而全面地介绍了面向对象程序设计的基本概念和方法,是本书最核心的内容;第7章简单介绍了函数模板和类模板的定义及使用;第8章介绍了输入/输出控制及文件的读写。
本书注重可读性、启发性和实用性。每章开头的“学习目标”以及每节的“本节要点”都给读者明确的学习要求和内容提示;每一道例题都精心设计并配微视频讲解演示,扫描二维码即可随时学习;对部分例题和内容提出思考题,以启发学生深入学习和理解。本书提供电子课件、全部例题源代码以及习题源代码等配套资源。
本书的配套教材包含了主教材中思考题的解析、每章的习题解答、补充习题与答案以及8个配套的实验与指导,建议与本书配合使用。
本书可作为高等院校计算机及相关专业程序设计课程的教材,也可作为编程爱好者自学C++语言的参考书。
前言
目前,许多高等院校在C语言课程结束之后开设C++语言课程,同时,也有很多读者希望在掌握C语言之后继续学习C++语言,尤其希望掌握C++面向对象的程序设计方法,本书的第3次改版正是顺应了这些需求。本书作者长期从事程序设计语言的教学和科研工作,具有丰富的教学经验和独到见解,对C++语言有着深刻的认识和透彻的把握。
C++语言是C语言的超集,既支持面向过程的程序设计,又支持面向对象的程序设计,但后者是其主要特色和应用。为了更好地体现C++语言是C语言的超集,本书第1章比较了这两种不同的程序设计方法,给出了C++语言中面向对象的相关概念及主要特征。第2章详细讲解了C++语言在支持面向过程的程序设计方面对C语言的兼容、改进及扩充,便于读者用C++语言实现结构化程序设计,更好地发挥C++语言的优势。
面向对象的程序设计是本书的重点。第3章~第8章围绕面向对象程序设计的概念与方法展开。第3章与第4章的侧重点是封装性问题。第3章是面向对象程序设计的基础,详细介绍了类、对象、构造函数与析构函数、this指针等知识。第4章讲解了类与对象的进阶知识,包括对象成员、静态成员、常对象、常成员、友元等。第5章关注继承性,包括派生类的定义、派生类的构造函数与析构函数的定义及调用顺序,解决由继承引起的多种二义性问题,以及虚基类、赋值兼容等内容。第6章展示多态性,阐述静态多态性与动态多态性的概念及实现方法:静态多态性通过函数重载实现,重点介绍了运算符的重载这一特殊的函数重载方式;动态多态性通过公有继承、虚函数、基类指针或引用来实现。第7章模板的知识可用于面向过程和面向对象编程,主要包括函数模板和类模板内容,如何从模板特化为具体的函数和类是重点。第8章介绍了C++语言的流类库、格式控制方法、文件操作方法等,这一章解决了数据的永久存储问题,为开发大型程序和实用系统提供了数据支持的基础。第3章~第8章的章末都给出了一个程序实例——学生信息管理系统,侧重于每章知识的综合运用,体现一例贯穿的特色。
本书继续保持了前两版教材的优点,具体如下。
(1)每个新知识点的引出都以前面已有知识作为基础,提出新的问题并自然地切入。
(2)每个实例程序的关键语句及运行结果都有详细注解,方便读者阅读和理解。
(3)注重编程风格、命名及源代码的书写格式规范等。
(4)一例贯穿。第3章~第8章最后的程序实例都是学生信息管理系统,各章实现的方法不同,侧重体现本章知识的综合运用;各章的不同例题之间前后相关,用比较和层层深入的方式推出新例题。