《C++程式设计语言(李雁妮)“十一五”》是2009年西安电子科技大学出版社出版的图书,作者是李雁妮、陈平、王献青。
基本介绍
- 书名:C++程式设计语言(李雁妮)“十一五”
- 作者:李雁妮 陈平 王献青
- ISBN:978-7-5606-2151-7
- 定价:31.45元
- 出版社:西安电子科技大学出版社
- 出版时间:2009-01
内容简介
本书分三部分,共16章。第一部分对C++语言的基本机制,即对C++语言中用于支持面向过程与面向模组化程式设计的语言机制进行了较为準确与全面的介绍;第二部分重点介绍了C++支持面向对象与类属程式设计的各种语言机制,同时,在该部分对C++ 的异常处理机制进行了较为详尽的介绍;第三部分对C++标準模板库STL进行了简要阐述,由于程式一般都要进行字元串与输入/输出处理,因此,在该部分重点对标準类库中的string类和C++的I/O类进行了较具体的介绍。
本书针对计算机专业的本科生编写。书中注有星号的章节为C++ 中较深入的一些问题,在教学中可视教学时数与教学对象进行适当取捨。本书除作为本科生C++ 程式设计的教材之外,还可供计算机或电子类相关专业的研究生或工程技术人员参考学习。
目录
第一部分 C++语言的基本机制
第1章 绪论 2
1.1 C++语言的发展历史及特点 2
1.1.1 C++语言的发展历史 2
1.1.2 C++语言的特点 3
1.2 学习C++语言的注意事项 3
1.2.1 如何学习C++ 3
1.2.2 如何使用本教材 4
1.3 C++ 语言中一些重要的程式设计理念 5
小结 7
练习题 7
第2章 C++ 语言概述 8
2.1 C++语言及程式设计范型 8
2.1.1 C++语言的概念 8
2.1.2 程式设计范型 9
2.1.3 第一个C++程式及C++程式结构 9
2.2 过程程式设计范型 10
2.2.1 过程程式设计范型介绍 10
2.2.2 变数和算术运算符 11
2.2.3 条件判断与循环 12
2.2.4 指针与数组 12
2.3 模组化程式设计范型 13
2.4 数据抽象 14
2.5 面向对象程式设计范型 17
2.6 类属/通用程式设计范型 19
小结 21
练习题 21
第3章 类型与声明 22
3.1 类 型 22
3.2 C++中的基本数据类型 24
3.2.1 布尔类型 24
3.2.2 字元类型 25
3.2.3 整数类型 26
3.2.4 浮点类型 27
3.2.5 C++数据类型存储量的大小 29
3.3 void类型 30
3.4 枚举类型 30
3.5 类型的声明与定义 32
3.5.1 声明的语法规则 33
3.5.2 C++中的标识符 34
3.5.3 标识符的作用域 35
3.5.4 typedef 35
3.6 类型转换 36
小结 37
练习题 38
第4章 运算符与语句 39
4.1 C++运算符概述 39
4.1.1 算术运算符和自增、自减运算符 40
4.1.2 关係和逻辑运算符 42
4.1.3 位运算符 43
4.1.4 记忆体申请与释放运算符new和delete 46
4.1.5 赋值运算符 47
4.1.6 类型转换运算符 47
4.1.7 C++运算符概览及其优先权次序 49
4.2 C++语句 50
4.2.1 表达式语句和空语句 51
4.2.2 注释语句及意义 51
4.2.3 複合语句 52
4.2.4 选择判断语句 52
4.2.5 循环语句 57
4.2.6 跳转语句 62
小结 65
练习题 66
第5章 指针、数组和结构 67
5.1 指针 67
5.1.1 指针与指针变数 67
5.1.2 为什幺要使用指针变数 68
5.1.3 指针变数的声明与定义 69
5.1.4 指针变数的操作 69
5.1.5 常量零(0) 71
5.2 数组 71
5.2.1 数组的定义与初始化 71
5.2.2 字元串字面值 73
5.3 指向数组的指针 74
5.3.1 指向一维数组的指针 74
5.3.2 指向多维数组的指针 75
5.3.3 取数组元素及数组的遍历 76
5.4 指向函式的指针 80
5.5 指向void*的指针 81
5.6 常量 82
5.7 引用 85
5.8 结构 88
小结 94
练习题 95
第6章 函式 96
6.1 函式的声明 98
6.1.1 函式接口/原型声明 98
6.1.2 函式的定义 98
6.2 函式的参数传递 99
6.3 函式的返回值 101
6.4 函式名的过载/重载 102
6.4.1 函式名过载/重载的基本概念 102
6.4.2 重载函式的匹配规则 102
6.4.3 重载函式与函式的返回类型 105
6.4.4 重载与作用域 105
6.5 预设的函式参数值 106
6.6 递归 107
6.6.1 递归的基本概念 107
6.6.2 递归的定义及递归函式的编写模式 108
6.7 参数数目可变的函式 110
6.8 函式指针 114
6.9 综合示例 115
小结 128
练习题 128
第7章 名字空间与异常处理 129
7.1 模组与接口的基本概念 129
7.2 名字空间 131
7.2.1 名字空间的基本概念 131
7.2.2 名字空间中的名字解析 132
7.2.3 模组的多重接口 137
7.3 异常处理 138
7.4 综合示例 141
小结 146
练习题 147
第8章 源档案和程式 148
8.1 分别编译 149
8.2 连结 149
8.2.1 连结与一致性的基本概念 149
8.2.2 头档案 151
8.2.3 #include指令 152
8.2.4 用户头档案内容的设计 152
8.3 头档案的有效使用 154
8.4 命令行参数 156
8.5 程式 158
8.5.1 程式的执行 158
8.5.2 程式的终止 159
小结 159
练习题 160
第二部分 C++的抽象机制
第9章 类与对象 162
9.1 类的基本概念 162
9.2 类中成员 163
9.2.1 类中的成员 163
9.2.2 类的访问控制 165
9.2.3 类的构造函式 168
9.2.4 类的静态成员 170
9.2.5 对象的拷贝 173
9.2.6 常量(Const或称唯读)成员函式 175
9.2.7 对象的自身引用——this 176
9.3 定义有效、高质量的类 178
9.4 对象 180
9.4.1 对象是什幺 180
9.4.2 C++中对象的类别 182
9.4.3 对象的析构——析构函式 183
9.4.4 默认构造函式 184
9.4.5 几种主要类别对象的构造与析构 184
9.4.6 对象的构造与析构次序 187
9.5 综合示例 189
小结 195
练习题 196
第10章 操作符重载 198
10.1 概述 198
10.2 操作符重载 199
10.2.1 二元操作符的重载 200
10.2.2 一元操作符的重载 201
10.3 类型转换操作符 202
10.3.1 类型转换函式 202
10.3.2 歧义性(二义性)问题 204
10.4 友员 204
10.5 大型对象 206
10.6 类中应具有的基本操作 207
10.7 几种特殊操作符的重载 211
10.7.1 下标运算符的重载 211
10.7.2 函式调用操作符的重载 212
10.7.3 指针/指向操作符的重载 214
10.7.4 自增、自减操作符的重载 216
10.7.5 流输入与流输出操作符的重载 217
10.8 综合示例 219
小结 237
练习题 238
第11章 继承与多态 239
11.1 概述 239
11.2 子类/派生类 240
11.2.1 子类/派生类与继承的基本概念 240
11.2.2 子类对象的存储结构 242
11.2.3 子类中的成员 242
11.2.4 子类的构造与析构函式 243
11.2.5 子类对象拷贝 246
11.2.6 public、protected和private继承 247
11.3 虚函式与多态性 253
11.3.1 类型域 253
11.3.2 虚拟函式 255
11.3.3 抽象基类与实例类 257
11.3.4 多态 259
11.3.5 虚拟的析构函式 261
*11.4 运行时的类型识别 263
11.4.1 dynamic_cast运算符 263
11.4.2 type_id运算符 266
*11.5 指向类成员的指针 266
11.5.1 指向类成员的指针 266
11.5.2 指向类的成员函式指针的套用场合 268
11.6 多重继承 270
11.7 综合示例 273
小结 279
练习题 280
第12章 模板 283
12.1 概述 283
12.2 类模板 285
12.2.1 类模板的定义 285
12.2.2 类模板参数及其限制 288
12.3 函式模板 289
12.3.1 函式模板的定义 289
12.3.2 函式模板的重载 290
12.3.3 函式调用的匹配原则 292
12.3.4 编写函式模板时的注意事项 292
12.4 模板与继承 297
12.5 综合示例 299
小结 313
练习题 313
第13章 异常处理 314
13.1 概述 314
13.2 C++异常处理结构try、throw 和catch 315
13.2.1 抛出异常 315
13.2.2 重新抛出异常 316
13.2.3 捕获所有的异常 317
13.3 异常类层次 317
*13.4 捕获new操作所产生的异常 318
*13.5 C++ 标準库异常层次 321
小结 321
练习题 322
第三部分 C++标準模板库STL简介
第14章 string类 324
14.1 string概述 324
14.2 string类的构造函式与析构函式 324
14.3 string类重载的操作符 325
14.4 string类的成员函式 328
14.5 string的基本操作 329
14.5.1 元素访问 329
14.5.2 赋值 330
14.5.3 从string转换到C风格的字元串 331
14.5.4 字元串的比较 331
14.5.5 附加与插入 333
14.5.6 查找子串 334
14.5.7 替换 335
14.5.8 求子串 336
14.5.9 string对象的大小和容量 336
14.5.10 输入输出 336
14.6 C风格的字元串 337
14.6.1 C字元串操作函式 337
14.6.2 将数值字元串转换到数值的函式 338
14.6.3 字元分类 338
14.7 叠代器 339
14.8 字元串流处理 340
小结 340
练习题 340
第15章 C++ 输入/输出系统基础 342
15.1 C++ 中的流概述 342
15.1.1 C++的输入/输出流类库中的头档案 343
15.1.2 输入/输出流类和对象 343
15.2 输出流 344
15.3 输入流 345
15.3.1 流读取运算符 345
15.3.2 用于输入的一些成员函式 346
15.4 成员函式read和write的无格式 输入/输出 347
15.5 流操纵运算元 347
15.5.1 设定整数流的基数 348
15.5.2 设定浮点数精度 348
15.5.3 设定输出域宽 350
小结 351
练习题 352
第16章 标準模板库STL简介 353
16.1 STL概述 353
16.1.1 容器 353
16.1.2 算法 353
16.1.3 叠代器 354
16.1.4 其它STL元素 354
16.2 容器类 355
16.3 STL类的一般操作原理 356
16.4 vector容器 357
16.4.1 通过叠代器访问vector矢量中的元素 360
16.4.2 vector的其它成员函式 361
16.4.3 在vector中存储自定义类型的对象 363
16.5 list容器 364
16.6 deque双向伫列 369
16.7 关联容器 369
16.7.1 map关联容器类 369
16.7.2 set和multiset关联容器类 372
16.8 容器适配器 373
16.8.1 stack适配器 373
16.8.2 queue适配器 375
16.8.3 priority_queue适配器 376
16.9 算法 376
16.9.1 fill、fill_n、generate与generate_n算法 378
16.9.2 equal、mismatch和lexicographica_compare算法 380
16.9.3 remove、remove_if、remove_copy和remove_copy_if算法 382
16.9.4 replace、replace_if、replace_copy和replace_copy_if算法 384
16.9.5 一些常用的数学算法 386
16.9.6 基本查找与排序算法 388
16.9.7 swap、iter_swap和swap_ranges算法 390
16.9.8 copy_backward、mergeunique和reverse算法 392
16.9.9 inplace_merge、unique_copy和reverse_copy算法 393
16.9.10 集合操作 394
16.9.11 lower_bound、upper_bound和equal_range算法 396
16.9.12 堆排序 398
16.9.13 min和max算法 400
16.10 函式对象 401
16.10.1 一元函式对象与二元函式对象 401
16.10.2 STL内置的函式对象 401
16.10.3 绑定器 404
参考文献 406