C++探秘:68讲贯通C++
2推荐 收藏
7.2K阅读
图灵程序设计丛书

C++探秘:68讲贯通C++

Ray Lischner (作者) 刘晓娜 , 林健 , 石小兵 , 李杰 (译者)
终止销售
本书采用引导探索式的教学方法,将庞大的C++ 知识体系划分成四个大部分68 讲,每讲都包含一个互动练习,帮助读者循序渐进地学习C++。你可以通过这种互动快速掌握表达式、声明、标准库、自定义函数、类和模板等等C++ 的各方面特性,并最终掌握如何把这些特性组合起来编写复杂的C++ 程序。
本书适合有少量其他语言编程经验的C++ 初学者。

收藏本书能做什么?

有情况的时候会收到通知,比如电子书发布等。

纸质书
¥89.00

其他购买方式?

出版信息

同系列书

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Java技术手册(第6版)

    Benjamin J Evans   David Flanagan   安道   译

    通过学习本书,你将能够: 掌握最新的语言细节,包括Java 8的变化 使用基本的Java句法学习面向对...

  • 机器学习实战

    Peter Harrington   李锐   李鹏   曲亚东   王斌   译

    机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或...

本书特色

步步为营攻破C++堡垒
编程专家为你指点迷津
C++初学者进阶必备

目录

第一部分 C++基础
第1讲 打磨工具    2
1.1 作者推荐    2
1.1.1 Windows平台    2
1.1.2 Macintosh OS 9以及更早版本    3
1.1.3 其他平台    3
1.2 阅读文档    3
1.3 第一个程序    4
第2讲 阅读C++代码    10
2.1 注释    11
2.2 头文件    11
2.3 主程序    13
2.4 变量定义    13
2.5 语句    14
2.6 输出    15
第3讲 整数表达式    17
第4讲 字符串    23
第5讲 简单的输入    28
第6讲 错误消息    33
6.1 拼写错误    34
6.2 错误字符    34
6.3 未知操作符    35
6.4 未知名字    35
6.5 符号错误    36
6.6 从错误中获得乐趣    36
第7讲 For循环    37
7.1 有界循环    37
7.1.1 初始化    37
7.1.2 条件    38
7.1.3 后循环    39
7.1.4 for循环的工作原理    39
7.2 由你来做    39
第8讲 格式化输出    41
8.1 问题    41
8.2 字段宽度    42
8.3 填充    43
8.4 std前缀    44
8.5 对齐    44
8.6 探索格式化    44
8.7 替代语法    46
8.8 由你完成    46
第9讲 数组和向量    49
9.1 用向量代替数组    49
9.2 向量    50
9.3 迭代器    51
9.4 算法    53
9.5 成员类型    54
9.6 使用迭代器和算法    55
第10讲 自增和自减    58
10.1 自增    58
10.2 自减    59
第11讲 条件和逻辑    64
11.1 I/O和bool    64
11.2 布尔类型    65
11.3 逻辑操作符    67
11.4 旧式语法    68
11.5 比较操作符    68
第12讲 复合语句    71
12.1 语句    71
12.2 局部定义和范围    74
12.3 for循环头中的定义    76
第13讲 文件I/O简介    79
13.1 读文件    79
13.2 写文件    80
第14讲 数据结构映射    83
14.1 使用映射    83
14.2 迭代器    84
14.3 搜索映射    86
第15讲 类型同义词    88
15.1 typedef声明    88
15.2 常见的类型定义    89
第16讲 字符    91
16.1 字符类型    91
16.2 字符I/O    93
16.3 换行和移植性    94
16.4 转义字符    94
第17讲 字符分类    96
17.1 字符集    96
17.2 字符分类    98
17.3 区域设置    99
第18讲 大小写转换    103
18.1 简单的大小写    103
18.2 复杂的大小写    104
第19讲 编写函数    107
19.1 函数    107
19.2 函数调用    109
19.3 声明和定义    109
19.4 再谈单词计数    111
19.5 函数main()    113
第20讲 函数实参    115
20.1 实参传递    115
20.2 按引用传递    117
20.3 常量引用    119
20.4 const_iterator    120
20.5 输出参数    121
第21讲 使用算法    122
21.1 传递数据    122
21.2 谓词    126
21.3 其他算法    128
第22讲 重载函数名    131
第23讲 大数和小数    136
23.1 长整型和短整型    136
23.1.1 长整数    137
23.1.2 短整数    137
23.2 整数字面量    138
23.3 字节长度的整数    139
23.4 类型转换    140
23.5 整数算术    141
23.6 重载解析    142
第24讲 极大数和极小数    145
24.1 浮点数    145
24.2 浮点字面量    146
24.3 浮点特征    147
24.4 浮点I/O    148
第25讲 文档    151
25.1 Doxygen    151
25.2 结构化注释    151
25.3 文档标签    152
25.4 使用Doxygen    156
第26讲 项目1:身体质量指数    157
第二部分 自定义类型
第27讲 自定义类型    160
27.1 定义新类型    160
27.2 成员函数    161
27.3 构造函数    164
27.4 重载构造函数    166
第28讲 重载操作符    167
28.1 比较有理数    167
28.2 算术操作符    171
28.3 数学函数    173
第29讲 自定义I/O操作符    175
29.1 输入操作符    175
29.2 输出操作符    176
29.3 错误状态    177
第30讲 赋值与初始化    179
30.1 赋值操作符    179
30.2 构造函数    180
30.3 合并    181
第31讲 编写类    186
31.1 类的结构    186
31.2 成员函数    187
31.3 构造函数    189
第32讲 深入探索成员函数    193
32.1 调用默认构造函数    193
32.2 重温Project 1    196
32.3 const成员函数    199
第33讲 访问级别    203
33.1 公有与私有    203
33.2 class与struct    206
33.3 简单的旧式数据    206
33.4 公有还是私有    207
第34讲 面向对象编程介绍    212
34.1 书籍与杂志    212
34.2 分类    213
34.3 继承    215
34.4 Liskov置换原则    216
34.5 类型多态    216
第35讲 继承    218
35.1 派生类    218
35.2 析构函数    221
35.3 访问级别    224
35.4 编程风格    225
第36讲 虚函数    226
36.1 类型多态    226
36.2 虚函数    229
36.3 引用与切除    230
36.4 纯虚函数    231
36.5 虚析构函数    232
第37讲 类与类型    233
37.1 类与typedef    233
37.2 值类型    236
37.2.1 复制    236
37.2.2 赋值    236
37.2.3 比较    236
37.3 资源获取即为初始化    239
第38讲 声明与定义    241
38.1 声明与定义    241
38.2 内联函数    243
38.3 变量声明与定义    244
38.4 静态变量    246
38.5 静态数据成员    248
38.6 声明符    250
第39讲 使用多个源文件    251
39.1 多个源文件    251
39.2 声明与定义    252
39.3 #include文件    254
39.3.1 引号与括号    256
39.3.2 嵌套#include指令    256
39.3.3 包含监护    257
39.3.4 文档    258
39.4 外部变量    261
39.5 内联函数    261
39.6    “一份定义”规则    262
第40讲 函数对象    264
40.1 函数调用操作符    264
40.2 函数对象    265
40.3 复用成员函数    269
40.4 生成器函子    270
第41讲 有用的算法    272
41.1 搜索    272
41.1.1 线性搜索算法    272
41.1.2 二分搜索算法    276
41.2 比较    279
41.3 重组织数据    281
41.4 复制数据    282
41.5 删除元素    283
41.6 迭代器    284
第42讲 迭代器    285
42.1 迭代器的种类    285
42.1.1 输入迭代器    286
42.1.2 输出迭代器    286
42.1.3 前向迭代器    286
42.1.4 双向迭代器    287
42.1.5 随机访问迭代器    287
42.2 使用迭代器工作    288
42.3 const_iterator与const iterator    290
42.4 错误消息    292
42.5 专用迭代器    292
42.6 迭代器要点    294
第43讲 异常    296
43.1 异常介绍    296
43.2 捕获异常    297
43.3 抛出异常    299
43.4 程序栈    300
43.5 标准异常    304
43.6 I/O异常    304
43.7 自定义异常    306
43.8 对异常的建议    307
第44讲 更多操作符    309
44.1 条件操作符    309
44.2 短路操作符    311
44.3 逗号操作符    311
44.4 算术赋值操作符    313
44.5 自增与自减    315
第45讲 项目2:定点数    318
第三部分 泛型编程
第46讲 函数模板    324
46.1 泛型函数    324
46.2 使用函数模板    325
46.3 编写函数模板    326
46.4 模板形参    328
46.5 模板实参    329
46.6 声明与定义    331
46.7 成员函数模板    331
第47讲 类模板    333
47.1 参数化类型    333
47.2 参数化rational类    334
47.3 使用类模板    336
47.4 重载的操作符函数    338
47.5 混合类型    340
第48讲 模板特化    342
48.1 实例化与特化    342
48.2 自定义比较函数    345
48.3 特化函数模板    346
48.4 特征    347
第49讲 部分特化    349
49.1 退化的pair    349
49.2 部分特化    350
49.3 部分特化函数模板    351
49.4 值模板形参    351
第50讲 名字与名字空间    353
50.1 名字空间    353
50.2 嵌套名字空间    355
50.3 全局名字空间    358
50.4 名字空间std    358
50.5 使用名字空间    359
50.5.1 using指令    359
50.5.2 using声明    361
50.5.3 类中的using声明    363
50.6 无名名字空间    364
50.7 名字查找    365
第51讲 容器    370
51.1 容器的性质    370
51.2 技术报告1    371
51.3 成员类型    372
51.4 容器里能放什么    373
51.5 插入与清除    374
51.5.1 顺序容器的插入操作    374
51.5.2 顺序容器的清除操作    375
51.5.3 关联容器的插入操作    375
51.5.4 关联容器的清除操作    376
51.5.5 异常    377
51.6 迭代器与引用    377
51.7 顺序容器    380
51.7.1 类模板array    381
51.7.2 类模板deque    382
51.7.3 类模板list    383
51.7.4 类模板vector    384
51.8 关联容器    385
第52讲 国际字符    389
52.1 为何要“宽”    389
52.2 使用宽字符    389
52.3 宽字符串    390
52.4 宽字符的I/O操作    392
52.5 多字节字符集    393
52.6 Unicode    394
52.7 通用字符名字    396
第53讲 区域设置与分面    397
53.1 问题    397
53.2 拯救者“区域设置”    398
53.3 区域设置与I/O    399
53.4 分面    399
53.5 字符类别    402
53.6 排序规则    406
第54讲 文本I/O    410
54.1 文件模式    410
54.2 字符串流    411
54.3 文本转换    417
54.4 Boost词法转换    420
第55讲 项目3:货币类型    422
第四部分 实时编程
第56讲 指针    424
56.1 问题    424
56.2 解决方案    432
56.3 地址与指针    433
56.4 依赖图    434
第57讲 动态内存    437
57.1 分配内存    437
57.2 释放内存    438
57.3 指向为空的指针    438
57.4 实现标准容器    440
57.5 增加变量    441
57.6 特殊成员函数    448
第58讲 异常—安全    452
58.1 内存泄漏    452
58.2 异常与动态内存    454
58.3 自动删除指针    456
58.4 auto_ptr不能做的事    458
58.5 异常与构造函数    458
第59讲 旧式数组    462
59.1 C风格的数组    462
59.2 数组的限制    463
59.3 动态分配数组    464
59.4 多维数组    465
59.5 C风格的字符串    466
59.6 命令行参数    466
59.7 指针运算    468
第60讲 智能指针    470
60.1 重新审视auto_ptr    470
60.2 可复制智能指针    472
60.3 智能数组    474
60.4 Pimpl    474
60.5 迭代器    482
第61讲 位操作    483
61.1 将整数作为位的集合    483
61.2 位掩码    485
61.3 移位    486
61.4 使用无符号类型安全移位    487
61.4.1 有符号与无符号类型    488
61.4.2 无符号字面量    488
61.4.3 类型转换    489
61.5 溢出    493
61.6 位域简介    493
61.7 可移植性    494
61.8    bitset类模板    495
第62讲 枚举    498
62.1 理想的枚举    498
62.2 作为位掩码的枚举    499
62.3 模拟枚举    500
62.3.1 枚举计算机语言    500
62.3.2 对语言进行比较    501
62.3.3 赋值    502
62.3.4 字符串和语言    503
62.3.5 初始化    508
62.3.6 读写语言    508
62.3.7 使用模拟的枚举    509
62.4 重新审视项目    510
第63讲 多重继承    512
63.1 多重基类    512
63.2 虚基类    514
63.3 类Java接口    516
63.4 接口与模板    518
63.5 Mix-in    519
63.6 友元来帮忙    521
第64讲 特征萃取与策略    524
64.1 案例研究:迭代器    524
64.2 迭代器特征萃取    528
64.3 案例研究:char_traits    529
64.4 基于策略的编程    530
第65讲 名字与模板    538
65.1 限定名的问题    538
65.2 非限定名的问题    540
第66讲 重载函数    546
66.1 重载函数回顾    546
66.2 重载解析    549
66.2.1 候选函数    549
66.2.2 可行函数    551
66.2.3 最佳可行函数    551
66.3 默认实参    555
第67讲 元编程    557
67.1 编译时编程    557
67.2 模板特化    557
67.3 部分特化    559
第68讲 项目4:计算器    566

相关文章

  • chaosky 推荐

    C++内置算术类型的属性查询

    名字std::numeric_limits属于C++标准库,用以查询内置算术类型的属性。你可以确定一个类型需要多少位,十进制数字,它的最小值和最大值等等。 代码示例 `#include #include #include int main() { … ...

暂无评论!