C++语言导学
作者 : [美]本贾尼·斯特劳斯特卢普(Bjarne Stroustrup) 著
译者 : 杨巨峰 王刚 译
丛书名 : 计算机科学丛书
出版日期 : 2015-04-27
ISBN : 978-7-111-49812-4
定价 : 39.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 174
开本 : 16
原书名 : A Tour of C++
原出版社: Pearson Education Asia
属性分类: 教材
包含CD :
绝版 :
图书简介

本书作者是C++语言的设计者和最初实现者,写作本书的目的是让有经验的程序员快速了解C++现代语言。书中几乎介绍了C++语言的全部核心功能和重要的标准库组件,以很短的篇幅将C++语言的主要特性呈现给读者,并给出一些关键示例,让读者用很短的时间就能对现代C++的概貌有一个清晰的了解,尤其是关于面向对象编程和泛型编程的知识。
本书没有涉及太多C++语言的细节,非常适合想熟悉C++语言最新特性的C/C++程序设计人员以及精通其他高级语言而想了解C++语言特性和优点的人员。

图书特色

C++语言设计者全新力作,快速熟悉最新版本C++语言的最佳选择

C++11标准使得程序员能以更清晰、简明、直接的方式表达思想,从而编写出更快速和高效的代码。作为C++的设计者和最初的实现者,Bjarne Stroustrup在他的经典著作《C++程序设计语言》中详尽地介绍了C++语言的各种细节及其用法。
在这本中,作者把C++完整参考手册的精华概述部分摘取出来,并且进行必要的扩充和提升,目的是让有经验的程序员在很短时间内就能清晰地了解到构成现代C++语言的关键元素。本书虽薄,结构却清晰完整,作者在书中介绍了C++语言的绝大多数特性以及最重要的一些标准库组件。尤其难能可贵的是,虽然受篇幅所限无法对每个知识点展开深入讲解,但依然能够帮助程序员了解语言的全貌,并给出一些关键示例,便于他们更好地学习和使用C++语言。
作者并非孤立地介绍C++的特性,而是将其置于适当的程序设计风格之中,这些风格包括读者熟悉的面向对象程序设计和泛型编程等。本书内容丰富,涵盖的范围极其广泛。从基础知识开始逐渐延展到更多高级主题,并且包含了大量C++11的新语法点,比如移动语义、规范初始化、lambda表达式、高级容器、随机数和并行等。本书最后讨论了C++的设计、历史演变以及扩展。
本书的目的并非教会读者如何编程(学习编程可以参考作者的《C++程序设计原理与实践》),读者也不可能仅靠阅读本书就熟练掌握C++(为此读者可以参考作者的《C++程序设计语言》)。但是,如果你是一个C/C++程序员,并且想熟悉最新版本的C++语言,或者你精通其他高级语言,希望了解一下C++语言有何特性和长处,那么本书显然是最好的选择。


本贾尼·斯特劳斯特卢普
(Bjarne Stroustrup)
C++语言的设计者和最初实现者,同时也是《C++程序设计语言》和《C++程序设计原理与实践》的作者。他现在担任摩根士丹利公司技术分部总经理,同时是得克萨斯农工大学的杰出教授和计算机系的首席教授,也是美国国家工程院院士、IEEE会士和ACM会士。他的研究兴趣包括分布式系统、设计、程序设计技术、软件开发工具和程序设计语言。他是C++语言ISO标准化工作的积极参与者。

图书前言

教而至简,不亦乐乎。
——西塞罗
现在的C++仿佛进化成了一种新的语言。与C++98相比,C++11更易于我们清晰、简洁、直观地表达思想。而且编译器可以更好地检查程序中的错误,程序的运行速度也提高了。
就像其他任何一种现代编程语言一样,C++的规模庞大且提供的库异常丰富,值得程序员认真学习以便高效地利用。这本小册子的目的是让有经验的程序员快速了解现代C++语言,因此它几乎介绍了C++的全部核心功能和重要的标准库组件。读者花费几个小时就能读完本书,但是想必所有人都清楚,要想写出漂亮的C++程序绝非一日之功。好在本书的目的并非让读者熟练掌握一切,而只是介绍语言的概貌,给出一些经典的例子,然后帮助读者开始自己的C++之旅。如果读者希望深入了解C++语言,请阅读我的另一本著作《The C++ Programming Language,Fourth Edition》(简称TC++PL4)。实际上,本书正是TC++PL4第2~5章的扩充版,只不过出于完整性和独立性的考虑我们稍微增加了一些内容。本书的篇章结构与TC++PL4保持一致,读者如果对细节感兴趣,可以在TC++PL4中进一步寻找答案。同样,在我的个人主页(www.stroustrup.com)上为TC++PL4编写的习题也可以用于本书。
我们假设读者已经拥有了一些编程经验。如果没有,建议你先找一本入门教材学习一下,比如《Programming:Principles and Practice Using C++》[Stroustrup,2009]。即便你曾经编写过程序,所使用的语言或者编写的应用也可能在风格或形式上与本书相距甚远。
我们用城市观光的例子来比喻本书的作用,比方说参观哥本哈根或者纽约。在短短几个小时之内,你可能会匆匆游览几个主要的景点,听到一些有趣的传说或故事,然后被告知接下来应该参观哪里。仅靠这样一段旅程,你无法真正了解这座城市,对听到和看到的东西也是一知半解,更别提熟悉这座城市的生存法则。毕竟要想认识并融入一座城市,需要在其中生活很多年。不过幸运的是,此时你已经对城市的总体情况有了一些了解,知道了它的某些特殊之处,并且对有的方面产生了兴趣。接下来,你有机会开始真正的探索之旅了。
本书介绍C++语言的主要功能,尤其是关于面向对象编程和泛型编程的知识。在写作时,我们没有涉及太多细节,更不想把本书写成参考手册。对于标准库也尽量去繁就简,用生动的例子进行讲解。本书没有介绍ISO标准之外的库,读者需要的话可以自行查阅有关资料。如果我们提到了某个标准库函数或类,读者很容易就能在头文件中找到它的定义,还可在互联网上搜集到更多与之有关的信息。
本书力求把C++作为一个整体呈现在读者面前,而非像千层糕一样逐层地介绍。因此,在这里我们不细分某项语言特性是归属于C、C++98还是C++11,这些与语言沿革有关的信息在第14章(历史和兼容性)可以找到。
致谢
本书的大多数内容源自TC++ PL4[Stroustrup,2012],因此首先感谢协助我完成TC++PL4的所有同仁。还要感谢Addison-Wesley的编辑Peter Gordon,是他建议作者把TC++PL4的部分章节扩展成本书的。

Bjarne Stroustrup

上架指导

计算机\程序设计

封底文字

C++11标准使得程序员能以更清晰、简明、直接的方式表达思想,从而编写出更快速和高效的代码。作为C++的设计者和最初的实现者,Bjarne Stroustrup在他的经典著作《C++程序设计语言(第4版)》中详尽地介绍了C++语言的各种细节及其用法。
在这本中,作者把C++完整参考手册中的综述内容摘取出来,并且进行必要的扩充和提升,目的是让有经验的程序员在很短时间之内就能清晰地了解到是哪些元素构成了现代的C++语言。本书虽薄,结构却清晰完整,作者在书中介绍了C++语言的绝大多数特性以及最重要的一些标准库组件。尤其难能可贵的是,虽然受篇幅所限无法对每个知识点展开深入讲解,但依然能够帮助程序员了解语言的全貌,并给出一些关键示例,便于他们更好地学习和使用C++语言。
作者并非孤立地介绍C++的特性,而是将其置于适当的程序设计风格之中,这些风格包括读者熟悉的面向对象程序设计和泛型编程等。本书内容丰富,涵盖的范围极其广泛。从基础知识开始逐渐延展到更多高级问题,并且包含了大量C++11的新语法点,比如移动语义、规范初始化、lambda表达式、高级容器、随机数和并行等。本书最后讨论了C++的设计、历史演变,以及C++11所做的扩展。
本书的目的并非教会读者如何编程(学习编程可以参考作者的《C++程序设计原理与实践》),读者也不可能仅靠阅读本书就熟练掌握C++(为此读者可以参考作者的《C++程序设计语言(第4版)》。但是,如果你是一个C/C++程序员,并且想熟悉最新版本的C++语言,或者你精通其他高级语言,希望了解一下C++语言有何特性和长处,那么本书显然是最好的选择。

Bjarne Stroustrup是C++的设计者和最初的实现者,同时也是《C++程序设计语言(第4版)》和《C++程序设计原理与实践》的作者。他是德州农工大学的杰出教授和计算机系的首席教授,也是美国国家工程院院士、IEEE会士和ACM会士。他的研究兴趣包括分布式系统、设计、程序设计技术、软件开发工具和程序设计语言。他是C++语言ISO标准化工作的积极参与者。


封底加以下三本书的小封面:
书号:28248,定价89.00元,书名《C++程序设计原理与实践(英文版)》
书号:30322,定价108.00元,书名《C++程序设计原理与实践》
书名《C++程序设计语言(第4版)》(即将出版)

译者简介

杨巨峰 王刚 译:暂无简介

译者序

C++是一门经典的程序设计语言。
Bjarne Stroustrup是C++的设计者、最初的实现者和C++ ISO标准的主要制定者。
本书是Bjarne Stroustrup推出的一本介绍C++的“有趣的新书”。与作者的其他著作相比,本书有三个特点。一是“新”:本书是初版,也是作者首次尝试以快速导览的新形式介绍C++。从写作手法、章节组织到示例选取都力图推陈出新,一改语言类书籍教条枯燥的通病,文字间洋溢着新意。二是“薄”:本书篇幅短小,每个主题多则二三十页、少则十余页即叙述完成,不论随身携带或者置于案头,读者都可以在几天时间里读完本书并有所收获。三是“精”:本书的文字虽少,内容却不少,甚至可以说非常丰富。不但涉及C++的绝大多数语言特性以及重要的标准库组件,而且涵盖了C++11标准几乎全部的新内容。
在翻译过程中我们有这样一个体会,与其说作者是在书中介绍一些语法和技术,不如说他是在传递思想——传递他在发明、设计和不断完善C++语言过程中的所思和所虑。当思想和编程实践产生碰撞时,他又基于丰富的实践经验给出了非常中肯的建议。
很多学习者和程序员常常会有这样的疑问:C++是什么?读完本书,相信你会得到满意的答案。
作者Bjarne在Morgan Stanley的同事庄健刚、田敏、孙澔峻、陈仇、宗栋、李阳、陈凯、傅光磊、吴妍洁、王立擘审校了本书译稿,并提出了宝贵的修改建议,在此表示衷心感谢!
由于时间紧促且译者水平有限,书中的不当之处恳请广大读者批评指正。

2014年冬日
于南开园

图书目录

出版者的话
中文版序
译者序
前言
第1章 基础知识 1
1.1 引言 1
1.2 程序 1
1.3 Hello,World! 2
1.4 函数 3
1.5 类型、变量和算术运算 5
1.6 作用域和生命周期 7
1.7 常量 8
1.8 指针、数组和引用 9
1.9 检验 11
1.10 建议 13
第2章 用户自定义类型 15
2.1 引言 15
2.2 结构 15
2.3 类 17
2.4 联合 18
2.5 枚举 19
2.6 建议 20
第3章 模块化 22
3.1 引言 22
3.2 分离编译 23
3.3 命名空间 24
3.4 错误处理 25
3.4.1 异常 26
3.4.2 不变式 27
3.4.3 静态断言 28
3.5 建议 29
第4章 类 30
4.1 引言 30
4.2 具体类型 31
4.2.1 一种算术类型 31
4.2.2 容器 33
4.2.3 初始化容器 34
4.3 抽象类型 36
4.4 虚函数 38
4.5 类层次结构 39
4.5.1 显式覆盖 40
4.5.2 层次结构的益处 41
4.5.3 层次结构漫游 42
4.5.4 避免资源泄漏 43
4.6 拷贝和移动 44
4.6.1 拷贝容器 44
4.6.2 移动容器 45
4.6.3 基本操作 47
4.6.4 资源管理 49
4.6.5 抑制操作 50
4.7 建议 51
第5章 模板 53
5.1 引言 53
5.2 参数化类型 53
5.3 函数模板 55
5.4 概念和泛型编程 56
5.5 函数对象 57
5.6 可变参数模板 59
5.7 别名 60
5.8 模板编译模型 61
5.9 建议 61
第6章 标准库概览 63
6.1 引言 63
6.2 标准库组件 63
6.3 标准库头文件和命名空间 64
6.4 建议 66
第7章 字符串和正则表达式 67
7.1 引言 67
7.2 字符串 67
7.2.1 string的实现 69
7.3 正则表达式 69
7.3.1 搜索 70
7.3.2 正则表达式符号表示 71
7.3.3 迭代器 75
7.4 建议 75
第8章 I/O流 77
8.1 引言 77
8.2 输出 78
8.3 输入 79
8.4 I/O状态 80
8.5 用户自定义类型的I/O 81
8.6 格式化 82
8.7 文件流 83
8.8 字符串流 83
8.9 建议 84
第9章 容器 86
9.1 引言 86
9.2 vector 86
9.2.1 元素 89
9.2.2 范围检查 89
9.3 list 90
9.4 map 91
9.5 unorder_map 92
9.6 容器概述 93
9.7 建议 94
第10章 算法 96
10.1 引言 96
10.2 使用迭代器 97
10.3 迭代器类型 99
10.4 流迭代器 100
10.5 谓词 102
10.6 标准库算法概览 102
10.7 容器算法 103
10.8 建议 104
第11章 实用工具 105
11.1 引言 105
11.2 资源管理 105
11.2.1 unique_ptr和shared_ptr 106
11.3 特殊容器 108
11.3.1 array 109
11.3.2 bitset 111
11.3.3 pair和tuple 111
11.4 时间 113
11.5 函数适配器 113
11.5.1 bind() 113
11.5.2 mem_fn() 114
11.5.3 function 114
11.6 类型函数 115
11.6.1 iterator_traits 116
11.6.2 类型谓词 117
11.7 建议 118
第12章 数值计算 119
12.1 引言 119
12.2 数学函数 119
12.3 数值算法 120
12.4 复数 121
12.5 随机数 121
12.6 向量算术 123
12.7 数值限制 124
12.8 建议 124
第13章 并发 125
13.1 引言 125
13.2 任务和thread 126
13.3 传递参数 126
13.4 返回结果 127
13.5 共享数据 128
13.6 等待事件 129
13.7 任务通信 130
13.7.1 future和promise 131
13.7.2 packaged_task 132
13.7.3 async() 133
13.8 建议 133
第14章 历史和兼容性 135
14.1 历史 135
14.1.1 大事年表 136
14.1.2 早期的C++ 137
14.1.3 ISO C++标准 139
14.2 C++11扩展 140
14.2.1 语言特性 140
14.2.2 标准库组件 141
14.2.3 已弃用特性 142
14.2.4 类型转换 143
14.3 C/C++兼容性 143
14.3.1 C和C++是兄弟 144
14.3.2 兼容性问题 145
14.4 参考文献 147
14.5 建议 149
索引 151

教学资源推荐
作者: 谢满德 刘文强 张国萍 编著
作者: (美)Richard Johnsonbaugh, Martin Kalin
作者: (美)Barry Wilkinson, Michael Allen
参考读物推荐
作者: 刘海波 沈晶 郭耸 等编著
作者: (美)Aaftab Munshi,Benedict R. Gaster, Timothy G. Mattson, James Fung, Dan Ginsburg 著
作者: 高峰 李彬 著
作者: 吴茂贵 王冬 李涛 杨本法 著