C++程序设计语言(第1-3部分)(原书第4版) 内容简介
《C++程序设计语言》(原书第4版)是C++领域经典的参考书,介绍了C++11的各项新特性和新功能。全书共分四部分。部分(第1~5章)是引言,包括C++的背景知识,C++语言及其标准库的简要介绍;第二部分(第6~15章)介绍C++的内置类型和基本特性,以及如何用它们构造程序;第三部分(第16~29章)介绍C++的抽象机制及如何用这些机制编写面向对象程序和泛型程序;第四部分(第30~44章)概述标准库并讨论一些兼容性问题。由于篇幅问题,原书中文版分两册出版,分别对应原书的至三部分和第四部分。这一册为至三部分。
C++程序设计语言(第1-3部分)(原书第4版) 目录
出版者的话
译者序
前言
第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.2C++的设计7
1.2.1程序设计风格8
1.2.2类型检查11
1.2.3C兼容性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.4C++的历史18
1.4.1大事年表19
1.4.2早期的C++19
1.4.31998标准21
1.4.42011标准23
1.4.5C++的用途26
1.5建议27
1.6参考文献28
第2章C++概览:基础知识32
2.1引言32
2.2基本概念33
2.2.1Hello,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.3I/O流78
4.3.1输出78
4.3.2输入79
4.3.3用户自定义类型的I/O80
4.4容器81
4.4.1vector81
4.4.2list84
4.4.3map85
4.4.4unordered_map86
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.1unique_ptr与shared_ptr97
5.3并发99
5.3.1任务和thread99
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.3pair和tuple109
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.1ISOC++标准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.7void128
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.1void*149
7.2.2nullptr150
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指针与const161
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.1struct的布局175
8.2.2struct的名字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匿名union186
8.4枚举188
8.4.1enumclass188
8.4.2普通的enum191
8.4.3未命名的enum192
8.5建议193
第9章语句194
9.1引言194
9.2语句概述194
9.3声明作为语句195
9.4选择语句196
9.4.1if语句196
9.4.2switch语句198
9.4.3条件中的声明200
9.5循环语句201
9.5.1范围for语句201
9.5.2for语句202
9.5.3while语句203
9.5.4do语句203
9.5.5退出循环204
9.6goto语句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常量表达式中的const229
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重载new245
11.3列表247
11.3.1实现模型248
11.3.2限 定列表249
11.3.3未限 定列表249
11.4lambda表达式251
11.4.1实现模型251
11.4.2lambda的替代品252
11.4.3捕获254
11.4.4调用与返回257
11.4.5lambda的类型257
11.5显式类型转换258
11.5.1构造259
11.5.2命名转换261
11.5.3C风格的转换262
11.5.4函数形式的转换262
11.6建议263
第12章函数264
12.1函数声明264
12.1.1为什么使用函数265
12.1.2函数声明的组成要件265
12.1.3函数定义266
12.1.4返回值267
12.1.5inline函数269
12.1.6constexpr函数269
12.1.7((noreturn))函数271
12.1.8局部变量272
12.2参数传递273
12.2.1引用参数273
12.2.2数组参数275
12.2.3列表参数277
12.2.4数量未定的参数278
12.2.5默认参数281
12.3重载函数282
12.3.1自动重载解析283
12.3.2重载与返回类型284
12.3.3重载与作用域285
12.3.4多实参解析285
12.3.5手动重载解析286
12.4前置与后置条件286
12.5函数指针288
12.6宏292
12.6.1条件编译294
12.6.2预定义宏295
12.6.3编译指令296
12.7建议296
第13章异常处理297
13.1错误处理297
13.1.1异常298
13.1.2传统的错误处理299
13.1.3渐进决策300
13.1.4另一种视角看异常301
13.1.5何时不应使用异常302
13.1.6层次化错误处理303
13.1.7异常与效率304
13.2异常保障305
13.3资源管理307
13.3.1finally310
13.4强制不变式311
13.5抛出与捕获异常315
13.5.1抛出异常315
13.5.2捕获异常318
13.5.3异常与线程324
13.6vector的实现324
13.6.1一个简单的vector325
13.6.2显式地表示内存328
13.6.3赋值331
13.6.4改变尺寸332
13.7建议335
第14章名字空间337
14.1组合问题337
14.2名字空间338
14.2.1显式限 定339
14.2.2using声明340
14.2.3using指示341
14.2.4参数依赖查找342
14.2.5名字空间是开放的344
14.3模块化和接口345
14.3.1名字空间作为模块346
14.3.2实现348
14.3.3接口和名字349
14.4组合使用名字空间351
14.4.1便利性与安全性351
14.4.2名字空间别名352
14.4.3组合名字空间352
14.4.4组合与选择353
14.4.5名字空间和重载354
14.4.6版本控制356
14.4.7名字空间嵌套358
14.4.8无名名字空间359
14.4.9C头文件359
14.5建议360
第15章源文件与程序362
15.1分离编译362
15.2链接363
15.2.1文件内名字365
15.2.2头文件366
15.2.3单一定义规则368
15.2.4标准库头文件369
15.2.5链接非C++代码370
15.2.6链接和函数指针372
15.3使用头文件373
15.3.1单头文件组织373
15.3.2多头文件组织376
15.3.3包含保护380
15.4程序381
15.4.1非局部变量初始化381
15.4.2初始化和并发382
15.4.3程序终止383
15.5建议384
……
第三部分抽象机制
第16章 类
第17章 构造、清理、拷贝和移动
第18章 运算符重载
第19章 特殊运算符
第20章 派生类
第21章 类层次
第22章 运行时类型信息
第23章 模板
第24章 泛型程序设计
第25章 特例化
第26章 实例化
第27章 模板和类层次
第28章 元编程
第29章 一个矩阵设计
C++程序设计语言(第1-3部分)(原书第4版) 精彩文摘
1.1.2基本特性
C++支持传统的c语言编程风格(也被Je他一些相似的语言所采用),第二部分重点介绍支持C编程风格的C++子集,包括类型、对象、作用域和存储的基本概念,计算的基础(表达式、语句和函数),以及支撑模块化的特性——名字空问、源文件和异常处理。
本文来自西绿柿投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。