21世纪高等学校规划教材·计算机科学与技术:面向对象程序设计(C++语言)(第二版) 9787302507475

配送至
$ $ USD 美元

编辑推荐

《面向对象程序设计(C++语言)(第二版)》首先介绍了C++语言的基础,然后重点介绍了面向对象的程序设计思想,最后,讲解基于Windows环境的VC++程序开发,有理论有实践,内容循序渐进。

目录

目录

第一部分C++语言基础

第1章面向对象程序设计概述

1.1面向过程与面向对象

1.1.1面向过程的程序设计

1.1.2面向对象的程序设计

1.2面向对象程序设计的基本特征

1.2.1新的程序设计范型

1.2.2面向对象程序设计的基本概念

1.2.3面向对象程序设计的基本特征

1.3C++语言概述

1.3.1从C到C++

1.3.2C++语言的特点

1.4C++程序及其开发环境

1.4.1C++程序的开发过程

1.4.2Microsoft Visual Studio 2015集成开发环境简介

1.4.3Visual C++控制台应用程序开发

1.5本章小结

习题

第2章C++语言基础

2.1C++语言的基本语法

2.1.1一个简单的C++程序

2.1.2名字空间

2.1.3标识符命名及规范

2.2基本数据类型、运算符和程序流程控制

2.2.1基本数据类型

2.2.2运算符和程序流程控制

2.2.3数据类型转换

2.3数据的输入与输出

2.3.1I/O的书写格式

2.3.2简单的I/O格式控制

2.4C++中函数的新特性

2.4.1函数的原型

2.4.2默认参数的函数

2.4.3内联函数

2.4.4函数重载

2.5引用

2.5.1引用的概念及使用

2.5.2引用作为参数传递

2.5.3引用与指针的区别

2.5.4引用作为返回类型

2.6动态内存分配

2.6.1动态内存分配与释放函数

2.6.2new和delete

2.7异常处理

2.7.1异常处理的机制

2.7.2异常处理的实现

2.8本章小结

习题

第二部分面向对象的程序设计

第3章类和对象(一)

3.1类的构成

3.1.1从结构到类

3.1.2类的构成

3.1.3类成员的访问属性

3.2类的成员函数

3.3对象的定义与使用

3.3.1类与对象的关系

3.3.2对象的定义

3.3.3对象中成员的访问

3.3.4对象赋值语句

3.4构造函数与析构函数

3.4.1构造函数

3.4.2成员初始化表

3.4.3具有默认参数的构造函数

3.4.4析构函数

3.4.5默认的构造函数和析构函数

3.4.6重载构造函数

3.4.7拷贝构造函数

3.4.8浅拷贝和深拷贝

3.4.9C++11新的类功能

3.5UML

3.5.1UML概述

3.5.2类图

3.6本章小结

习题

第4章类和对象(二)

4.1自引用指针this

4.2对象数组与对象指针

4.2.1对象数组

4.2.2堆对象

4.2.3对象指针

4.3向函数传递对象

4.3.1使用对象作为函数参数

4.3.2使用对象指针作为函数参数

4.3.3使用对象引用作为函数参数

4.4静态成员

4.4.1静态数据成员

4.4.2静态成员函数

4.5友元

4.5.1友元函数

4.5.2友元类

4.6对象成员

4.7常对象

4.8本章小结

习题

第5章继承与派生

5.1继承与派生的概念

5.2派生类的声明

5.3派生类的访问属性

5.4派生类的构造函数和析构函数

5.4.1派生类构造函数和析构函数的执行顺序

5.4.2派生类构造函数和析构函数的构造规则

5.4.3C++11继承构造函数

5.5多继承

5.5.1多继承的声明

5.5.2多继承的构造函数与析构函数

5.6基类成员访问和赋值兼容性

5.6.1基类成员名的限定访问和名字覆盖

5.6.2名字覆盖

5.6.3赋值兼容规则

5.7虚基类

5.7.1提出问题

5.7.2虚基类的概念

5.7.3虚基类的初始化

5.8本章小结

习题

第6章虚函数与多态性

6.1多态性概述

6.1.1多态的类型

6.1.2基类指针指向派生类对象

6.2虚函数

6.2.1虚函数的定义格式

6.2.2多继承与虚函数

6.2.3虚析构函数

6.3纯虚函数和抽象类

6.3.1纯虚函数

6.3.2抽象类

6.4综合应用举例

6.5本章小结

习题

第7章运算符重载

7.1运算符重载的概念

7.2运算符重载的规则

7.3运算符重载为友元函数

7.4运算符重载为成员函数

7.5几种常用运算符的重载

7.6本章小结

习题

第8章模板

8.1模板的概念

8.2函数模板与模板函数

8.3类模板与模板类

8.4C++11模板新增特性

8.5本章小结

习题

第9章标准模板库(STL)

9.1STL概述

9.2容器

9.2.1容器分类与共同操作

9.2.2顺序容器

9.2.3关联容器

9.3迭代器

9.3.1迭代器的分类

9.3.2容器类迭代器的基本操作

9.4算法与函数对象

9.4.1算法的使用形式

9.4.2常用算法举例

9.4.3函数对象

9.5STL和C++11

9.6本章小结

习题

第10章C++的输入和输出

10.1C++语言的流类库及其基本结构

10.2预定义类型的输入输出

10.2.1无格式输入输出

10.2.2格式化输入输出

10.3用户自定义类型的输入输出

10.4文件的输入输出

10.4.1通过FILE结构进行文件操作

10.4.2通过文件流进行文件操作

10.5本章小结

习题

第三部分Visual C++环境下Windows程序开发概述

第11章Windows编程初步

11.1一个最简单的Windows程序

11.2简单Windows程序的生成步骤

11.3Windows基本程序框架

11.4Windows程序消息处理过程

11.5Windows常用数据类型和句柄

11.6Windows程序实现绘图功能

11.7把类与对象引入到Windows程序中

11.8本章小结

习题

第12章MFC库和应用程序框架

12.1MFC中的常用类

12.2MFC的应用程序框架

12.3窗口消息映射与处理函数

12.4对话框及常用控件

12.4.1对话框的构成和分类

12.4.2创建对话框程序

12.4.3添加对话框类

12.4.4运行对话框程序

12.4.5Windows常用控件

12.5文档和视图

12.5.1文档和视图的关系

12.5.2文档和视图类常用的成员函数

12.6文档和视图程序实例

12.7本章小结

习题

第13章综合设计实例——简单绘图程序

13.1功能需求

13.2分析与设计

13.2.1图形元素的类逻辑设计

13.2.2图元的存储管理

13.2.3图元的绘制操作

13.3程序实现

13.3.1建立SDI应用程序框架

13.3.2建立菜单和工具条

13.3.3添加图形元素类

13.3.4框架类的实现

13.3.5文档类的实现

13.3.6视图类的实现

13.4程序运行结果

13.5本章小结

习题

参考文献

序言

第2版前言

本书是《面向对象程序设计(C++语言)》的第2版,为保持一定的教学连续性,本书继续保留原教材的主要框架及特点,对部分章节内容进行了更新或修改。
1. 第2版的变化
通过几年来的教学实践积累,根据作者的授课经验,以及教材使用院校的反馈,在第1版的基础上,本书做了以下几个方面的修改。
(1) 对章节内容的修改及完善。
在不改变整体知识架构的基础上,对部分章节的内容做了调整,对章节内容进行深入讲解分析,更新或增加了每章的例题与习题。
(2) 增加了程序运行结果的截图。
对于每章的例题,修改了例题运行结果的表示形式,给出例题的实际运行结果截图,以这种方式呈现程序的运行结果,强化了运行结果的直观性,便于读者阅读分析。
(3) 特别修改了本书第三部分的内容。
特别修改了Visual C++环境下Windows程序开发的内容,基于本书第一部分和第二部分的学习内容,增加了“小球游戏程序”开发的实例,综合运用面向对象程序设计知识,设计开发Windows应用程序,使学生在面向对象程序设计上再上一个台阶。
(4) 更新了Windows平台的程序开发环境。
本书基于目前较主流的Visual C++ 2015集成开发环境,所有程序均基于Visual C++ 2015集成开发环境编译运行。并给出开发步骤的截图说明,读者可以跟着设计过程说明,学习应用程序的开发。
(5) 增加C++11标准的新特性。
参考了C++标准,为了保持教学的连贯性,本书并没有全部改到C++11标准上,仅给出了C++11的部分新特性,以便读者了解和深入学习。
2. 本书的主要内容
本书内容主要分三大部分,首先介绍C++语言的基础,然后重点介绍面向对象的程序设计思想,最后讲解基于Windows环境的VC++程序开发,有理论、有实践,三大部分内容循序渐进,逐步提高,这也是本书区别于同类书的一大亮点。
第一部分是C++语言基础。重点介绍C++语言的语法、面向对象的基本特征、C++程序的开发过程、基本数据类型、函数、引用、动态内存管理及异常处理等。
第二部分是面向对象的程序设计。详细讲述面向对象程序设计的基本概念、类与对象的定义和使用、继承与派生、多态性、运算符重载、模板、标准模板库STL、C++的输入与输出等。
第三部分是Visual C++环境下Windows程序开发概述。包括Windows编程初步和综合设计实例。
每章开始以精练的语言扼要说明本章的内容要点,本章难点被适当地分解在各节中。
本书作者长期以来从事面向对象程序设计的教学,具有丰富的教学、实践经验和独到的见解,这些经验和见解都已融入本书的内容中。书中的程序都已在Visual C++2015集成开发环境下编译通过。
3. 本书的特色
本书的特色体现在以下4个方面。
(1) 内容精练、讲解深入。参考C++标准的新特性,对庞杂的知识做认真的取舍,结合作者的教学经验讲解,透彻展示重要内容。
(2) 知识介绍深入浅出、简明易懂。对C++语言的基本概念、原理和方法的简述由浅入深,条理分明,循序渐进。以“概念→语法→举例”的形式进行讲解,强调指出学生常犯的错误和容易混淆的概念。
(3) 特别强调实践环节对于程序设计的重要性。理论与实践紧密结合。不仅说明知识点,更重要的是向读者表明其应用方法,注重对知识的应用领域和质量进行评价,激发读者对于程序设计的兴趣,使读者在短时间内掌握“用什么”“怎么用”“用在哪”,进而学会用C++语言进行程序设计并积累丰富的实践经验。
(4) 讲授相关课程的教师可以从清华大学出版社网站下载本书的电子课件和相关例程代码。
4. 相关说明
学生提出的问题,自己的编程实践和对技术的思索,特色教学的需要都是促使我们编写本书的源动力。本书第1~4章由李爱华编写,第5~8章由程磊编写,第9~13章由刘海艳编写。另外,沈红、郑浩哲、臧晶和高珊也参与了部分章节的编写及程序调试工作。
本书可以用作48~64学时教学的教材,我们努力从程序员的角度来介绍标准C++语言的基本技术和精华内容,但限于篇幅,有些内容无法详述,如需更深、更详细的研究时可参考本书在最后给出的参考文献书目。
本书第1版已被很多院校选做“面向对象程序设计”课程的教材,他们在使用过程中给出了非常中肯的建议,在此深表感谢。
本书是作者多年教学实践的产物,我们希望它能够引导读者步入面向对象程序设计的辉煌殿堂,也特别希望读者能够不吝指出书中的缺点和错误,与我们交流,以便将其修改得更加完善。

2018年5月

文摘

第3章类和对象(一)

本章要点:
 类的定义与类的成员
 对象的定义与使用
 类的构造函数
 重载构造函数
 析构函数
 UML及类图

本书的第一部分讲解C++语言在面向过程方面对C语言的扩充与改进,从本章开始进入第二部分面向对象的程序设计,将介绍C++语言在面向对象方面的应用。围绕类与对象的概念和特点,本章将介绍类的定义与使用方法,类的数据成员与成员函数,类的构造函数与析构函数,拷贝构造函数的定义,深拷贝与浅拷贝的区别; 并对C++11新的类功能进行简单说明。

3.1类的构成

3.1.1从结构到类
C++语言中的结构(structure或者struct)类似于一种简单的类。结构是一种自定义的数据类型,它们把相关联的数据元素组成一个单独的统一体。结构Date中包含了三个数据元素year,month,day,分别表示年、月、日。在结构中可以进行设置日期、显示日期等操作。例3.1是这个例子的完整程序。
ISBN9787302507475
出版社清华大学出版社有限公司
作者程磊
尺寸16