新書推薦:
《
小麦文明:“黄金石油”争夺战
》
售價:HK$
97.9
《
悬壶杂记全集:老中医多年临证经验总结(套装3册) 中医医案诊疗思路和处方药应用
》
售價:HK$
135.1
《
无法忍受谎言的人:一个调查记者的三十年
》
售價:HK$
63.8
《
战争社会学专论
》
售價:HK$
118.8
《
剑桥意大利戏剧史(剑桥世界戏剧史译丛)
》
售價:HK$
162.8
《
教育何用:重估教育的价值
》
售價:HK$
65.8
《
理想城市:环境与诗性
》
售價:HK$
85.8
《
大模型推荐系统:算法原理、代码实战与案例分析
》
售價:HK$
97.9
|
編輯推薦: |
C ++便捷参考
《写给大忙人看的C++》既为繁忙的程序员提供学习C ++语言**功能的*快捷的方式,也为快速找到特定语言问题的答案提供了一个方便的资源。旨在为你快速提供所需的*准确的**信息,重要的是,这本书也是新的C++11标准的一个重要指导,其中包括C ++标准库的高级应用。
其特点包括
?对C++核心语言和标准库中几乎所有的函数、对象和运算符的简明描述,以及为它们分别精心挑选的清晰例子
?通过语法显示、表格和重要的函数概述提供了“一目了然”的信息
?内容组织成便于快速查找所需信息的形式
?使用实用的演示来简单地解释高级的概念
?完整的程序示例既有用又有趣,包括谜题、游戏和富有挑战性的练习
本书涵盖C ++ 11的所有特性,包括
?lambda表达式
?右值引用
?正则表达式库
?随机库
?散列表容器
?智能指针
|
內容簡介: |
本书全面介绍了C++语言知识,既提供了学习C++语言**功能的捷径,也为快速找到特定问题的答案提供了便利。本书简明地描述了C++核心语言和标准库中几乎所有的函数、对象和运算符,一目了然地显示了语法、结构和重要函数的信息,内容组织形式便于快速查找信息。本书精选了实用的例子来深入地讲解概念,还提供了富有挑战性的练习及参考答案,便于读者举一反三,巩固所学的知识。本书涵盖了C++11的新特性,包括:lambda表达式、右值引用、正则表达式库、随机库、散列表容器、智能指针等。
|
關於作者: |
凭借在技术上的造诣和对学员进行培训的长期经验,Brian Overland是**有资格编写简化复杂概念的书的作者。他在20世纪80年代就开始从事C语言编程,服务于被全球各地使用的软件驱动的灌溉系统。他在编写电影和戏剧评论时,还在社区学院教授编程和英语作文。在微软,他花了十年从测试人员和技术支持专家晋升到项目负责人及经理。作为Visual Basic 1.0的项目负责人,他为世界带来了方便的Windows编程技术,并在解释它的用法等方面起到了关键的作用,他也是Visual C++团队的一员。从那时起,他编写了许多成功的书籍,并创办了自己的高科技公司。
|
目錄:
|
第1章 C++基础1
1.1 组成C++程序的元素1
1.1.1 #include指令2
1.1.2 using语句2
1.1.3 main函数3
1.2 处理“闪烁的控制台一闪而过”4
1.3 使用Microsoft Visual Studio4
1.4 使用C++执行更多的操作5
1.5 添加简单的变量声明7
1.6 介绍C++控制结构9
1.6.1 使用“if”做判断9
1.6.2 使用“while”循环11
1.7 C++程序的一般结构12
1.8 关于命名空间的更多内容13
1.9 关于注释的一些解释15
1.9.1 C++注释(行注释)15
1.9.2 C语言风格的注释15
1.10 示例应用程序:加法机16
练习17
1.11 示例应用程序:计算phi18
练习20
第2章 数据21
2.1 声明简单变量22
2.2 基本数据类型23
2.2.1 整数类型:准则24
2.2.2 浮点类型:准则25
2.3 符号名(符号)25
2.4 字面量26
2.5 混合数值类型29
2.5.1 整数与浮点数29
2.5.2 布尔型与整型30
2.5.3 有符号整数与无符号整数30
2.6 字符串和字符字面量33
2.6.1 单引号字符33
2.6.2 双引号字符串34
2.6.3 特殊字符(转义序列)36
2.6.4 宽字符串39
2.6.5 原始字符串字面量(C++11)40
2.7 数据声明:完整的语法40
2.8 枚举类型43
2.9 特殊声明(typedef、auto、decltype)45
2.9.1 typedef关键字45
2.9.2 auto和decltype关键字(C++11)46
2.10 示例应用程序:类型提升47
练习48
第3章 运算符49
3.1 优先级、结合性及左值49
3.1.1 优先级49
3.1.2 结合性50
3.1.3 左值50
3.2 运算符的简明概述51
3.3 运算符的详细信息53
3.3.1 范围运算符53
3.3.2 数据访问及其他高优先级的运算符54
3.3.3 前缀运算符55
3.3.4 指向成员的指针运算符58
3.3.5 乘法和除法59
3.3.6 加法和减法60
3.3.7 移位运算符60
3.3.8 小于和大于61
3.3.9 测试相等62
3.3.10 位运算和逻辑连词63
3.3.11 条件运算符64
3.3.12 赋值运算符64
3.3.13 throw运算符67
3.3.14 连接运算符67
3.4 善恶之争:后缀或前缀67
3.5 位运算符的详细信息68
3.5.1 按位与、或、异或68
3.5.2 对有符号数和无符号数的操作69
3.5.3 按位移位71
3.6 类型转换运算符71
3.6.1 static_cast运算符72
3.6.2 reinterpret_cast运算符73
3.6.3 const_cast运算符74
3.6.4 dynamic_cast运算符75
3.6.5 C语言的类型转换76
3.7 示例应用程序:打印输出二进制基数76
练习78
第4章 控制结构80
4.1 C++语句的简明概述80
4.2 空语句和表达式语句82
4.3 复合语句83
4.4 if和if-else语句84
4.5 while和do-while语句86
4.6 for语句87
4.7 基于范围的for语句(C++11)89
4.8 switch语句90
4.9 跳转语句(break、continue、goto)92
4.10 异常处理(try、catch)94
4.10.1 什么是异常94
4.10.2 try-catch代码块:常规语法95
4.10.3 catch块和异常对象96
4.10.4 抛出一个异常97
4.11 示例应用程序:猜数字游戏98
练习99
4.12 示例应用程序:计算机猜数字100
练习102
第5章 函数103
5.1 传统的(命名)函数概述103
5.1.1 函数原型与定义104
5.1.2 原型化一个函数(简化的语法)105
5.1.3 定义函数105
5.1.4 调用函数107
5.2 局部和全局变量107
5.3 完整的函数声明语法109
5.4 函数重载111
5.5 带有默认值的参数112
5.6 可变长度参数列表113
5.7 lambda函数或匿名函数(C++11)115
5.7.1 lambda函数的基本语法116
5.7.2 lambda函数的闭包语法117
5.7.3 mutable关键字120
5.7.4 将lambda表达式与STL连用120
5.7.5 存储和返回lambda函数122
5.8 constexpr函数(C++11)124
5.9 示例应用程序:骰子的概率125
练习127
第6章 指针、数组和引用129
6.1 引用129
6.1.1 引用参数129
6.1.2 从函数中返回一个引用132
6.1.3 用“const”修饰的引用132
6.2 数组133
6.2.1 简单的(一维)数组134
6.2.2 数组处理与循环135
6.2.3 向函数传递数组136
6.2.4 多维数组137
6.3 指针139
6.3.1 指针的概念139
6.3.2 将指针作为参数141
6.3.3 用于访问数组的指针142
6.3.4 指针运算145
6.3.5 指针与数组参数145
6.3.6 指针和内存分配146
6.3.7 指向const类型的指针148
6.3.8 对指针本身应用const150
6.3.9 void指针(void *)151
6.4 涉及指针的复合声明152
6.5 传递和返回函数指针155
6.6 智能指针(C++11)156
6.6.1 shared_ptr模板157
6.6.2 unique_ptr模板160
6.7 示例应用程序:埃拉托色尼筛162
练习163
第7章 类与对象165
7.1 概述:结构、联合和类165
7.2 基本的类声明语法166
7.2.1 声明和使用一个类167
7.2.2 数据成员访问(公有、私有、保护)168
7.2.3 定义成员函数170
7.2.4 调用成员函数173
7.2.5 私有成员函数175
7.2.6 包含类的类175
7.2.7 静态成员177
7.3 构造函数179
7.3.1 默认构造函数180
7.3.2 重载的构造函数和转换函数182
7.3.3 复制构造函数183
7.3.4 构造函数初始化列表184
7.3.5 委托构造函数(C++11)187
7.3.6 默认成员初始化(C++11)188
7.4 析构函数188
7.5 隐藏的this指针189
7.6 运算符函数(运算符重载)190
7.6.1 将运算符函数作为成员191
7.6.2 作为友元的运算符函数192
7.6.3 赋值运算符194
7.6.4 函数调用运算符195
7.6.5 下标运算符196
7.6.6 递增运算符和递减运算符197
7.6.7 传入和传出转换函数198
7.7 派生类(子类化)199
7.7.1 子类语法200
7.7.2 基类访问说明201
7.7.3 继承的构造函数(C++11)202
7.7.4 向上强制类型转换:子对象和基类指针203
7.7.5 虚函数和重载205
7.7.6 纯虚函数207
7.7.7 override关键字(C++11)207
7.7.8 解决层次结构中的名字冲突208
7.8 位字段209
7.9 联合211
7.9.1 命名联合211
7.9.2 匿名联合213
7.10 示例应用程序:打包的布尔213
演习216
第8章 预处理器指令217
8.1 预处理器指令的常规语法217
8.2 预处理器指令小结218
8.3 使用指令来解决具体问题221
8.3.1 用#define创建有意义的符号221
8.3.2 用#define创建宏223
8.3.3 条件编译(#if、#endif等)224
8.4 预处理器运算符226
8.5 预定义宏227
8.6 创建项目头文件229
第9章 创建和使用模板231
9.1 模板:语法和概述231
9.2 函数模板233
9.2.1 单参数的函数模板233
9.2.2 处理类型歧义235
9.2.3 有两个参数的函数模板235
9.3 类模板237
9.3.1 简单的类模板238
9.3.2 实例化类模板239
9.4 类模板与成员函数240
9.4.1 类模板与内联成员函数240
9.4.2 具有独立函数定义的类模板241
9.5 使用整型模板参数242
9.6 模板专门化243
9.7 可变参数模板(C++11)245
9.7.1 更复杂的可变模板247
9.7.2 可变参数模板规则概述248
9.7.3 元组249
|
內容試閱:
|
译者序
这是我翻译的第3本C++方面的书籍。C++对我来说有着特殊的意义,我在大约20年前首次接触了它,当时便被它的优雅和高效深深吸引,因此在工作后改变了自己的专业,并在13年前开始用它编写实用软件。C++陪伴了我这么多年,其思想已经融入我的头脑中,也许我一生都不会忘记。
从我的这段经历不难看出,C++是一门已经不再年轻的语言,但它这么多年来一直在默默地创建着各种系统和应用软件,以至于在这个移动互联的年代,它依然健在,而当年同样红火的一些编程语言早已消失不见。C++保持活力的原因在于它的不断发展,每一代新的标准都增加了程序员盼望已久的许多功能。例如从*早的带类的C语言,到面向对象编程,再到拥有庞大的类库和标准模板库的泛型编程。它还吸收了其他语言的特点,例如C++11引入的基于范围的for循环、lambda函数和正则表达式,这些改变使它变得越来越好用。语言的变迁也改变了我们编写程序的方式,过去在循环中后缀运算符很常见,现在**的却是前缀运算符;另外,引用除了用作左值,还能用作右值,读过本书你就会发现其中的奥妙。
有人曾提议把C++当作一门全新的语言,我对此不能认同。有C语言基础对于学会C++、Java、JavaScript等类似的语言都很有帮助,本书也用了几章篇幅讲述C语言的字符串、IO、时间等函数,这是很有必要的。使用一种工具的目的就是用它来解决问题,而我们则不能被工具所束缚;为了面向对象而非把简单的问题复杂化是不可取的,所以能用C++的C子集完成的工作尽管用它去做就好了。
每个人在编程中用到的功能总是有限的,但全面了解一门语言的功能对于防止犯类似于重复造轮子的错误还是很有必要的;虽然看书需要花费我们一定的时间,但总比将来花费时间来做无谓的事强。正所谓磨刀不误砍柴工,我建议读者和我一样通读本书,不一定非要记得某些复杂的语法或冗长的参数,只要了解有什么功能存在就好;具体用时可参考软件联机帮助文档,也可以回头再参考本书。如同C++开发工具这样的大型软件是许多聪明人的劳动结晶,我们只需站在他们搭好的平台上编写自己业务需要的应用程序,实在不能利用已有功能时才建议考虑自己开发,比如特定的算法或接口。
本书作者主持了微软Visual Basic设计项目,参与了Visual C++设计项目;前者是史上**款Windows下的快速开发工具,后者则是C++的实现。不用多说,本书作者知道C++用户*需要掌握的是什么。
感谢电子工业出版社博文视点资讯有限公司的张春雨编辑选择我们翻译本书,感谢符隆美编辑,她从专业的角度对译文进行了把关,并做了许多润色,使之更具可读性。
感谢李绿霞、卢林、陈克非、李洪秋、张慧珍、李又及、卢晓瑶、陈克翠、汤有四、李阳、刘雯、贾书民、苏旭晖对本书的翻译工作所做的贡献。
还要感谢我的儿子卢令一小朋友,他知道我在翻译书稿就常常自己安静地读书和玩耍,放弃了很多出去玩的机会,让我能够专注于本书的翻译,本书的出版也有他的一份功劳。
*后希望本书对读者有帮助。由于译者经验和水平有限,译文中难免有不妥之处,恳请读者批评指正!
卢涛
2015年5月19日
|
|