C++ 程序设计语言:第1~3部分(原书第4版) pdf

C++ 程序设计语言:第1~3部分(原书第4版)

内容简介

《C++程序设计语言》(原书第4版)是C++领域经典的参考书,介绍了C++11的各项新特性和新功能。

全书共分四部分。第一部分(第1~5章)是引言,包括C++的背景知识,C++语言及其标准库的简要介绍;第二部分(第6~15章)介绍C++的内置类型和基本特性,以及如何用它们构造程序;第三部分(第16~29章)介绍C++的抽象机制及如何用这些机制编写面向对象程序和泛型程序;第四部分(第30~44章)概述标准库并讨论一些兼容性问题。由于篇幅问题,原书中文版分两册出版,分别对应原书的至三部分和第四部分。这一册为至三部分。

作者简介

[美] 本贾尼·斯特劳斯特鲁普 著,王刚 译

目录

The C++ Programming Language, Fourth Edition
出版者的话
译者序
前言
第3版前言
第2版前言
第1版前言
第一部分 引言
第1章 致读者 2
1.1 本书结构 2
1.1.1 引言 2
1.1.2 基本特性 3
1.1.3 抽象机制 4
1.1.4 标准库 5
1.1.5 例子和参考文献 5
1.2 C++的设计 7
1.2.1 程序设计风格 8
1.2.2 类型检查 11
1.2.3 C兼容性 12
1.2.4 语言、库和系统 12
1.3 学习C++ 14
1.3.1 用C++编程 15
1.3.2 对C++程序员的建议 16
1.3.3 对C程序员的建议 16
1.3.4 对Java程序员的建议 17
1.4 C++的历史 18
1.4.1 大事年表 19
1.4.2 早期的C++ 19
1.4.3 1998标准 21
1.4.4 2011标准 23
1.4.5 C++的用途 26
1.5 建议 27
1.6 参考文献 28
第2章 C++概览:基础知识 32
2.1 引言 32
2.2 基本概念 33
2.2.1 Hello,World! 33
2.2.2 类型、变量和算术运算 34
2.2.3 常量 36
2.2.4 检验和循环 37
2.2.5 指针、数组和循环 38
2.3 用户自定义类型 40
2.3.1 结构 41
2.3.2 类 42
2.3.3 枚举 43
2.4 模块化 44
2.4.1 分离编译 45
2.4.2 名字空间 46
2.4.3 错误处理 47
2.5 附记 50
2.6 建议 50
第3章 C++概览:抽象机制 51
3.1 引言 51
3.2 类 51
3.2.1 具体类型 52
3.2.2 抽象类型 56
3.2.3 虚函数 58
3.2.4 类层次 59
3.3 拷贝和移动 62
3.3.1 拷贝容器 63
3.3.2 移动容器 64
3.3.3 资源管理 66
3.3.4 抑制操作 66
3.4 模板 67
3.4.1 参数化类型 67
3.4.2 函数模板 69
3.4.3 函数对象 69
3.4.4 可变参数模板 71
3.4.5 别名 72
3.5 建议 73
第4章 C++概览:容器与算法 74
4.1 标准库 74
4.1.1 标准库概述 75
4.1.2 标准库头文件与名字空间 75
4.2 字符串 77
4.3 I/O流 78
4.3.1 输出 78
4.3.2 输入 79
4.3.3 用户自定义类型的I/O 80
4.4 容器 81
4.4.1 vector 81
4.4.2 list 84
4.4.3 map 85
4.4.4 unordered_map 86
4.4.5 容器概述 86
4.5 算法 87
4.5.1 使用迭代器 88
4.5.2 迭代器类型 90
4.5.3 流迭代器 91
4.5.4 谓词 93
4.5.5 算法概述 93
4.5.6 容器算法 94
4.6 建议 94
第5章 C++概览:并发与实用功能 96
5.1 引言 96
5.2 资源管理 96
5.2.1 unique_ptr与shared_ptr 97
5.3 并发 99
5.3.1 任务和thread 99
5.3.2 传递参数 100
5.3.3 返回结果 100
5.3.4 共享数据 101
5.3.5 任务通信 103
5.4 小工具组件 106
5.4.1 时间 106
5.4.2 类型函数 107
5.4.3 pair和tuple 109
5.5 正则表达式 110
5.6 数学计算 111
5.6.1 数学函数和算法 111
5.6.2 复数 111
5.6.3 随机数 112
5.6.4 向量算术 113
5.6.5 数值限制 113
5.7 建议 114
第二部分 基本功能
第6章 类型与声明 116
6.1 ISO C++标准 116
6.1.1 实现 117
6.1.2 基本源程序字符集 118
6.2 类型 118
6.2.1 基本类型 119
6.2.2 布尔值 119
6.2.3 字符类型 121
6.2.4 整数类型 124
6.2.5 浮点数类型 126
6.2.6 前缀和后缀 127
6.2.7 void 128
6.2.8 类型尺寸 128
6.2.9 对齐 130
6.3 声明 131
6.3.1 声明的结构 133
6.3.2 声明多个名字 134
6.3.3 名字 134
6.3.4 作用域 136
6.3.5 初始化 138
6.3.6 推断类型:auto和decltype() 141
6.4 对象和值 144
6.4.1 左值和右值 144
6.4.2 对象的生命周期 145
6.5 类型别名 146
6.6 建议 147
第7章 指针、数组与引用 148
7.1 引言 148
7.2 指针 148
7.2.1 void* 149
7.2.2 nullptr 150
7.3 数组 150
7.3.1 数组的初始化器 152
7.3.2 字符串字面值常量 152
7.4 数组中的指针 155
7.4.1 数组漫游 156
7.4.2 多维数组 158
7.4.3 传递数组 159
7.5 指针与const 161
7.6 指针与所有权 163
7.7 引用 163
7.7.1 左值引用 164
7.7.2 右值引用 167
7.7.3 引用的引用 169
7.7.4 指针与引用 170
7.8 建议 172
第8章 结构、联合与枚举 173
8.1 引言 173
8.2 结构 173
8.2.1 struct的布局 175
8.2.2 struct的名字 176
8.2.3 结构与类 177
8.2.4 结构与数组 178
8.2.5 类型等价 180
8.2.6 普通旧数据 180
8.2.7 域 182
8.3 联合 183
8.3.1 联合与类 185
8.3.2 匿名union 186
8.4 枚举 188
8.4.1 enum class 188
8.4.2 普通的enum 191
8.4.3 未命名的enum 192
8.5 建议 193
第9章 语句 194
9.1 引言 194
9.2 语句概述 194
9.3 声明作为语句 195
9.4 选择语句 196
9.4.1 if语句 196
9.4.2 switch语句 198
9.4.3 条件中的声明 200
9.5 循环语句 201
9.5.1 范围for语句 201
9.5.2 for语句 202
9.5.3 while语句 203
9.5.4 do语句 203
9.5.5 退出循环 204
9.6 goto语句 204
9.7 注释与缩进 205
9.8 建议 207
第10章 表达式 208
10.1 引言 208
10.2 一个桌面计算器示例 208
10.2.1 分析器 209
10.2.2 输入 213
10.2.3 底层输入 216
10.2.4 错误处理 217
10.2.5 驱动程序 217
10.2.6 头文件 218
10.2.7 命令行参数 218
10.2.8 关于风格 220
10.3 运算符概述 220
10.3.1 结果 224
10.3.2 求值顺序 224
10.3.3 运算符优先级 225
10.3.4 临时对象 226
10.4 常量表达式 227
10.4.1 符号化常量 229
10.4.2 常量表达式中的const 229
10.4.3 字面值常量类型 229
10.4.4 引用参数 230
10.4.5 地址常量表达式 231
10.5 隐式类型转换 231
10.5.1 提升 231
10.5.2 类型转换 232
10.5.3 常用的算术类型转换 234
10.6 建议 235
第11章 选择适当的操作 236
11.1 其他运算符 236
11.1.1 逻辑运算符 236
11.1.2 位逻辑运算符 236
11.1.3 条件表达式 238
11.1.4 递增与递减 238
11.2 自由存储 240
11.2.1 内存管理 241
11.2.2 数组 243
11.2.3 获取内存空间 244
11.2.4 重载new 245
11.3 列表 247
11.3.1 实现模型 248
11.3.2 限定列表 249
11.3.3 未限定列表 249
11.4 lambda表达式 251
11.4.1 实现模型 251
11.4.2 lambda的替代品 252
11.4.3 捕获 254
11.4.4 调用与返回 257
11.4.5 lambda的类型 257
11.5 显式类型转换 258
11.5.1 构造 259
11.5.2 命名转换 261
11.5.3 C风格的转换 262
11.5.4 函数形式的转换 262
11.6 建议 263
第12章 函数 264
12.1 函数声明 264
12.1.1 为什么使用函数 265
12.1.2 函数声明的组成要件 265

感悟与笔记

C++是一种通用的程序设计语言,其设计就是为了使认真的程序员工作得更愉快。除了一些小细节之外,C++是C程序设计语言的一个超集。C++提供了C所提供的各种功能,还为定义新类型提供了灵活而有效的功能。程序员可以通过定义新类型,使这些类型与应用中的概念紧密对应,从而把一个应用划分成许多容易管理的片段。这种程序构造技术通常被称为数据抽象。某些用户定义类型的对象包含着类型信息,这种对象就可以方便而安全地用在那种对象类型无法在编译时确定的环境中。使用这种类型的对象的程序通常被称为是基于对象的。如果用得好,这些技术可以产生出更短、更容易理解,而且也更容易管理的程序。

C++里的关键概念是类。一个类就是一个用户定义类型。类提供了对数据的隐藏,数据的初始化保证,用户定义类型的隐式类型转换,动态类型识别,用户控制的存储管理,以及重载运算符的机制等。在类型检查和表述模块性方面,C++提供了比C好得多的功能。它还包含了许多并不直接与类相关的改进,包括符号常量、函数的在线替换、默认函数参数、重载函数名、自由存储管理运算符,以及引用类型等。C++保持了C高效处理硬件基本对象(位、字节、字、地址等)的能力。这就使用户定义类型能够在相当高的效率水平上实现。

C++及其标准库也是为了可移植性而设计的。当前的实现能够在大多数支持C的系统上运行。C的库也能用于C++程序,而且大部分支持C程序设计的工具也同样能用于C++。

会员免费下载

链接:https://pan.baidu.com/s/1djSOfkgNTIR9pGn7MG_NQg

提取码: ****** 查看

¥69/年 开通VIP会员

成为本站VIP会员即可无限下载。 请先点击百度网盘,看资源是否还在,不在请点击链接通知站长补资源。

资源标签点击标签可查看对应分类的资源

C++

资源推荐

免费 图解数据结构:使用Java

C++ 程序设计语言:第4部分 标准库(原书第4版)

C++编程思想(两卷合订本)

CSS世界

JavaScript DOM编程艺术(第2版)

C++ Primer Plus(第6版) 中文版

Vue.js快速入门

Java编程思想(第4版) [thinking in java]

Copyright © 2021-2022 知识猫. All Rights Reserved.