C++语言是广泛使用的程式设计语言之一,因其特有的优势在计算机套用领域占有重要一席。
基本介绍
- 书名C++面向对象程式设计
- 作者王桃发
- ISBN978-7-5609-8549-7
- 定价33.80元
- 出版社2013-02-01
- 开本16
内容简介
本书共分9章
第1章主要介绍C++在非面向对象方面的扩展。
第2章、第3章、第4章主要介绍代码重用技术——继承,内容涉及类本身管理函式、类聚合与包含、对象记忆体模型、子类与基类之间的特殊关係、派生类对象构建和析构过程、对象兼容性和多继承、多态性概念、虚函式、纯虚函式、抽象类、支持虚拟机制类对象记忆体模型等内容。
第5章、第6章、第7章介绍代码重用的一种技术——模板技术。第5章介绍函式模板和类模板,内容主要涉及模板重载、特化、部分特化、非类型化参数等技术细节。第6章主要介绍运算符重载,即重载为全局运算符或类成员函式或类友元函式,并列举常用运算符重载例子。第7章介绍一种重要的编程技术——标準模板库,内容主要涉及叠代器、容器、适配器、函式对象、算法、存储分配器等内容。
第8章主要介绍异常处理,内容主要涉及C++异常处理原则、C++异常类型匹配规则、C++异常处理堆叠解退,还介绍RTTI(运行时类型标识)对异常处理的支持。
第9章介绍C++对I/O的支持,内容主要涉及流、数据格式、预定义流对象、格式控制、档案操作和记忆体格式化。
本书既可以作为本科生面向对象程式设计的教材,也是程式设计师理想的参考书。
书籍目录
第1章 面向对象程式设计与C++ 1
1.1 面向对象程式设计简介 1
1.1.1 从面向过程到面向对象 1
1.1.2 面向对象程式设计基本概念 2
1.1.3 几种典型的面向对象程式设计语言 6
1.2 C++语言 7
1.2.1 C++语言的演变过程 7
1.2.2 C++语言的特点 8
1.2.3 C++编程工具 8
1.3 一个简单的C++程式 12
1.4 C++在非面向对象方面的扩展 13
1.4.1 C++的输入/输出功能 13
1.4.2 内联函式 14
1.4.3 函式原型与函式重载 15
1.4.4 名称空间与作用域运算符 17
1.4.5 引用 20
1.4.6 运算符new和delete 22
1.4.7 灵活的局部变数说明 25
1.4.8 const修饰符 26
1.4.9 注释行 27
本章小结 28
练习 28
第2章 类与对象 32
2.1 简单的类及对象 32
2.2 类定义注意事项 33
2.3 类成员函式定义的具体实现 34
2.4 类构造函式和析构函式的特点 35
2.5 拷贝构造函式与深拷贝 39
2.6 const成员函式 42
2.7 this指针 43
2.8 类的static属性与static方法 44
2.9 赋值运算符(=)重载 47
2.10 友元 48
2.11 C++结构 50
2.12 类的包含与聚合 51
2.13 对象存储持续性 56
2.14 类的其他套用 58
2.15 对象记忆体模型 64
2.16 类封装实例 65
本章小结 68
练习 68
第3章 继承 76
3.1 继承的思想 76
3.2 派生类和基类之间的特殊关係 77
3.2.1 is_a关係 77
3.2.2 C++继承的语法规则 78
3.2.3 派生类构造函式 78
3.2.4 派生类析构函式 78
3.2.5 访问基类private成员 78
3.2.6 继承的例子 79
3.2.7 错误继承的例子 80
3.3 C++中三种继承方式及派生类中访问控制规则 81
3.4 派生类对象记忆体模型分析 82
3.5 派生类对象的构造过程和析构过程 82
3.6 跨类的同名成员 85
3.7 基类对象与派生类对象之间的赋值兼容性问题与类型转换 86
3.8 多继承 90
3.8.1 非虚拟基类多继承 90
3.8.2 非虚拟基类多继承派生类的构造函式和析构函式 91
3.8.3 如何访问多个来自同一个共同基类的不同子对象 94
3.8.4 虚拟基类多继承 94
3.8.5 虚拟基类多继承派生类的构造函式和析构函式 95
3.9 继承综合套用实例 97
练习 101
第4章 多态性 107
4.1 重载和隐藏 107
4.2 多态性 108
4.3 多态性实现 111
4.4 virtual析构函式 114
4.5 纯虚函式和抽象类 116
4.6 抽象类的接口功能 118
4.7 支持虚拟机制类对象的记忆体模型 121
4.8 微软MFC简介(选读) 121
4.8.1 MFC介绍 122
4.8.2 CObject根类 122
4.8.3 MFC中重要的类 124
本章小结 125
练习 125
第5章 模板技术 131
5.1 函式模板 131
5.2 使用函式模板 133
5.2.1 函式模板的特点 133
5.2.2 函式模板类型化参数与函式模板非类型化参数 133
5.2.3 函式模板重载 134
5.2.4 函式模板特化 136
5.2.5 函式模板实例化 138
5.2.6 编译器选择函式版本策略 138
5.3 类模板与模板实例化 139
5.4 使用类模板 140
5.4.1 类模板完全特化 140
5.4.2 部分特化类模板与非类型化参数 142
5.4.3 类模板显式实例化 145
5.4.4 将模板作为参数 146
5.4.5 编译器选择类的策略 149
本章小结 149
练习 150
第6章 运算符重载 154
6.1 运算符重载基本概念 154
6.2 重载为全局运算符或类成员运算符或类友元函式 155
6.3 运算符重载注意事项 157
6.4 运算符重载举例 160
本章小结 167
练习 167
第7章 标準模板库STL 171
7.1 嵌套类 171
7.2 STL 172
7.3 通用编程技术 173
7.3.1 叠代器 173
7.3.2 叠代器类型 177
7.3.3 适配器 177
7.3.4 容器概念 177
7.3.5 容器类型 178
7.3.6 函式对象 185
7.3.7 算法 187
7.3.8 存储分配器 188
7.3.9 空容器和string类 188
本章小结 192
练习 192
第8章 异常与RTTI 196
8.1 传统异常处理的方法 196
8.1.1 传统异常处理 196
8.1.2 传统异常处理方式的缺点 197
8.2 C++异常处理 198
8.2.1 C++异常的原则 198
8.2.2 C++异常处理 198
8.2.3 C++异常的类型匹配规则 202
8.2.4 C++异常处理如何解决堆叠解退 202
8.2.5 C++标準异常 207
8.3 RTTI 208
8.3.1 什幺是RTTI 208
8.3.2 RTTI对C++异常机制的支持 211
8.3.3 支持RTTI的类的对象记忆体模型 211
本章小结 214
练习 214
第9章 C++ I/O操作 218
9.1 C++ I/O系统概念 218
9.1.1 从C I/O到C++ I/O 218
9.1.2 关于流 218
9.1.3 数据格式与转换 219
9.2 C++ I/O系统 220
9.2.1 C++ I/O流类库结构 220
9.2.2 预定义的流对象与重载>>、<<运算符 221
9.2.3 针对无格式的成员函式 224
9.2.4 C++ I/O格式控制(函式与操作符) 229
9.3 档案I/O操作 237
9.3.1 档案概述 237
9.3.2 档案的打开和关闭 237
9.3.3 档案读/写 241
9.3.4 随机存取 246
9.3.5 记忆体格式化 248
本章小结 249
练习 249
附录A C++关键字 253
附录B UML类图 254
B.1 UML简介 254
B.2 UML类图 254
B.3 常见免费UML建模工具 256
参考文献 258