本书在第1版的基础之上,根据实际教学的经验,对其内容进行了扩充和调整,同时修正了一些错误,补充了更多的练习题。修改过后的内容安排如下:第1章介绍面向对象的基本知识:第2章简要介绍C++语言除面向对象以外的语法成分;第3章介绍面向对象的核心概念——数据封装的思想和实现,主要对类的基本概念进行了描述;第4章在第3章的基础上进一步加深,详细阐述了更多的内容:第5章介绍面向对象的核心概念——多态性的思想和实现;第6章介绍面向对象的核心概念——继承的思想和实现;第7章介绍面向对象的核心概念——多态的思想和实现;第8章介绍C++语言的流库;第9章介绍C++泛型编程(模板)的思想和实现;第10章介绍面向对象设计技术;附录中介绍C++语言的名字空间和C++语言的例外处理。
C++语言是面向对象的程序设评语言,它所支持的面向对象的概念容易将问题空间直接映射到程序空间,为程序员提供了一种与传统的结构程序设计十分不同的思维方式。
C++语言是一种扩充了面向对象成分的C语言,它保持了C语言的简洁和高效,又支持面向对象的程序设计。
本书详细介绍了面向对象的思想和方法,C++语言的主要概念和基本语法,面向对象的三个核心概念——封装、多态性和继承性在C++语言中的实现方式,以及C++语言的某些扩充功能:如模板、命名空间、例外处理等,并用直观的方法讲了面向对象的设计技术。
本书可作为大专院校的研究生、本科生教材,也可供从事计算机软件开发和应用的人员参考。
出版说明
前言
第1章 引论
1.1 面向对象的目标
1.2 面向对象的目标核心概念
1.2.1 数据封装
1.2.2 继承
1.2.3 多态性
1.3 按对象方式思维
1.4 面向对象的思想和方法
1.4.1 面向对象是一种认知方法学
1.4.2 面向对象与软件IC
1.4.3 面向对象方法与结构程序设计方法
1.4.4 对象是抽象数据类型的实现
1.5 类属
1.6 面向对象的程序设计语言
第2章 C++语法
2.1 C++程序概貌
2.1.1 ISO/ANSI C++头文件
2.1.2 名字空间
2.1.3 main函数
2.1.4 输入和输出
2.1.5 注释
2.2 C++的内建(Built-in)类型
2.2.1 整数类型
2.2.2 浮点类型
2.3 变量和命名常量
2.3.1 标识符
2.3.2 变量声明
2.3.3 常量(Named Constant)和const关键字
2.3.4 易变变量和volatile关键字
2.4 用户自定义类型
2.4.1 枚举
2.4.2 数组
2.4.3 结构和联合
2.4.4 指针
2.4.5 引用
2.4.6 用typedef定义类型的别名
2.5 C++运算符
2.5.1 常用运算符
2.5.2 动态内存分配和释放运算符:new和delete
2.5.3 类型转换运算符
2.6 表达式
2.6.1 C++表达式
2.6.2 赋值表达式
2.6.3 条件和逻辑表达式
2.7 C++语句
2.7.1 简单语句和复合语句
2.7.2 流程控制语句
2.8 函数
2.8.1 函数原型声明和定义
2.8.2 函数的参数
2.8.3 函数的返回值
2.8.4 内联函数
2.8.5 函数递归
2.8.6 函数重载
2.8.7 变量的存储方式
2.8.8 标识符的作用范围
2.9 异常处理机制
2.9.1 异常处理的意义
2.9.2 异常处理的方法
2.10 实例:基本的C++程序
2.11 习题
第3章 类和对象
3.1 类与对象
3.1.1 类的定义
3.1.2 访问控制
3.1.3 类和对象的关系
3.2 类的成员
3.2.1 数据成员
3.2.2 成员函数
3.2.3 静态成员
3.2.4 类外访问成员的方法
3.3 C++的类
3.4 数据封装和信息隐藏的意义
3.5 实例:类与对象
3.5.1 简单队列
3.5.2 循环队列
3.5.3 堆栈、队列的应用
3.6 习题
第4章 深入类和对象
4.1 构造函数
4.1.1 构造函数的作用
4.1.2 构造函数的定义
4.1.3 重载构造函数
4.2 析构函数
4.3 拷贝构造函数
4.4 对象的创建、释放和初始化
4.5 对象和指针
4.5.1 this指针
4.5.2 指向类对象的指针
4.5.3 指向类成员的指针
4.6 友元关系
4.6.1 友元函数
4.6.2 友元类
4.6.3 友元关系的总结
4.7 与类和对象相关的问题
4.7.1 对象数组
4.7.2 类类型做参数类型
4.7.3 类类型常量
4.7.4 一个类的对象作为另一个类的成员
4.7.5 非局部环境
4.7.6 临时对象
4.7.7 类中说明枚举类型
4.8 实例:类属单向同质链表
4.9 习题
第5章 运算符重载
5.1 重载运算符
5.1.1 运算符重载的语法形式
5.1.2 重载运算符规则
5.1.3 一元和二元运算符
5.1.4 重载++和一一的前缀和后缀方式
5.1.5 重载赋值运算符
5.1.6 重载运算符()和[]
5.1.7 重载输入和输出运算符
5.2 new和delete的重载
5.2.1 为一个对象动态分配存储区
5.2.2 为一个数组动态分配存储区
5.2.3 指针悬挂问题
5.2.4 new和ddete的重载
5.3 类型转换运算符的重载
5.3.1 标准类型转换为类类型
5.3.2 类类型转换函数
5.4 临时对象
5.5 实例:复数类重载运算符
5.6 习题
第6章 继承和派生
6.1 派生类的概念
6.1.1 为什么要使用继承
6.1.2 派生类的声明和继承方式
6.1.3 基类对象的初始化
6.2 多继承
6.2.1 多继承的概念
6.2.2 虚基类
6.3 继承的意义
6.3.1 模块的观点
6.3.2 类型的观点
6.4 实例
6.4.1 继承实例:Point类
6.4.2 多基类实例
6.5 习题
第7章 虚函数和多态性
7.1 虚函数
7.1.1 静态多态性
7.1.2 基类和派生类的指针与对象的关系
7.1.3 虚函数与多态性
7.2 纯虚函数和抽象类
7.3 实例:乐器类
7.4 习题
第8章流库
8.1 C++的I/O系统
8.2 C++流库的结构
8.2.1 输入输出流的含义
8.2.2 C++流库的结构
8.3输入和输出
8.3.1 istream
8.3.2 ostream
8.3.3 输出运算符《
8.3.4 输入运算符》
8.4 格式控制
8.4.1 用iso类成员函数格式化
8.4.2 用操纵函数格式化
8.5 文件I/O
8.5.1 文件的概念
8.5.2 文件的打开和关闭
8.5.3 文件的读写
8.6 实例:文件的复制
8.7 习题
第9章 模板
9.1 类属的概念
9.1.1 无约束类属机制
9.1.2 约束类属机制
9.2 模板的概念
9.2.1 函数模板与模板函数
9.2.2 类模板与模板类
9.3 实例:一维数组
9.4 习题
第10章 面向对象设计技术
10.1 面向对象设计的直观方法
10.2 数据库应用的例子
10.2.1 问题简述
10.2.2 基本结构
10.2.3 粗略设计
10.2.4 进一步设计
10.2.5 对象的操作
10.2.6 设计流程图
10.2.7 面向对象编程
附录1 深入名字空间和例外处理
附录2 标准C++头文件
参考文献