新書推薦:
《
粤行丛录(岭南史料笔记丛刊)
》
售價:HK$
80.2
《
岁月待人归:徐悲鸿自述人生艺术
》
售價:HK$
61.4
《
女人的中国医疗史:汉唐之间的健康照顾与性别
》
售價:HK$
103.8
《
资治通鉴熊逸版:第四辑
》
售價:HK$
470.8
《
中国近现代名家精品——项维仁:工笔侍女作品精选
》
售價:HK$
66.1
《
宋瑞驻村日记(2012-2022)
》
售價:HK$
115.6
《
汗青堂丛书138·帝国的切口:近代中国口岸的冲突与交流(1832-1914)
》
售價:HK$
127.4
《
人世事,几完缺 —— 啊,晚明
》
售價:HK$
115.6
編輯推薦:
本书探索C 20的主要新特性(包括module、concept、宇宙飞船运算符和智能指针),涵盖了C 核心语言标准以及标准模板库(STL)中一些可用的代码模板,是一本方便的专题式代码参考指南。
通过本书,你将学习数字、字符串、日期、时间、类、异常、流和指针等的使用技巧,还将学习各种代码示例、C 算法模板、并行处理、多线程、数值处理和3D图形编程等。同时,本书提供了大量的STL模板,如函数对象模板、适配器模板、分配器模板和扩展模板。
通过阅读本书,你将学习:
C 20中的新功能。
如何编写模块。
如何处理文本、数字和类。
如何使用标准库中可用的容器和算法。
如何使用模板、内存、并发、网络、脚本等。
如何进行3D图形编程。
內容簡介:
本书带你探索 C 20 的主要新特性,包括模块、概念、飞船运算符和智能指针。本书是一本方便的专题式代码参考指南,涵盖了 C 核心语言标准以及标准模板库 (STL) 中可用的一些代码模板。通过本书,你将学习数字、字符串、日期、时间、类、异常、流、流程和指针等。 此外,你还将看到各种代码示例、C 算法模板、并行处理、多线程和数值处理、 3D 图形编程代码等。同时,本书还提供了大量的STL模板,如函数对象模板、适配器模板、分配器模板和扩展模板。
關於作者:
J. 伯顿 布朗宁(J. Burton Browning)
1999年在北卡罗来纳州立大学获得博士学位,研究领域涵盖远程学习、编程和教育技术等。他爱好广泛,喜欢编程、摄影、机器人技术、汽车修复、木工、狩猎、阅读、钓鱼和射箭等。他的出版作品涉及跨职能学习团队(CFLT)、乌托邦学校(教师主导的学校模式)、计算机编程(多种语言)、开源软件、医疗统计和数据挖掘、数控等离子切割机操作、教育技术、传记、移动学习、在线教学等主题。
布鲁斯 萨瑟兰(Bruce Sutherland)
一名来自苏格兰邓迪的电子游戏程序员。2005年,他毕业于阿伯泰大学,获得计算机游戏技术学士(荣誉)学位。毕业后,他就职于4J Studios,参与了《星际迷航:遭遇战》(PS2)、《上古卷轴4:湮没》(PS3)、《星际迷航:帝国霸业》(PS2、Wii)、《杜卡迪摩托》(NDS)和《AMF保龄球:非同寻常》(nds)等项目。2008年7月,他从邓迪搬到了澳大利亚墨尔本,在那里他加入了Visceral Studios,担任《死亡空间》(Xbox 360、PS3、PC)、《教父2》(Xbox360、PS3、PC)和《死亡空间3》(Xbox360、PS3、PC)的软件工程师。他对安卓系统的开发也很感兴趣,还在自己的博客上撰写教程。
目錄 :
译者序
前言
关于技术审校者
第1章 C 入门1
1.1 寻找文本编辑器2
1.2 在Ubuntu上安装Clang3
1.3 在Windows上安装Clang4
1.4 在macOS上安装Clang5
1.5 构建你的个C 程序6
1.6 在Cygwin或Linux中使用GDB调试C 程序8
1.7 在macOS上调试C 程序11
1.8 切换C 编译模式12
1.9 用Boost库构建程序13
1.10 安装Microsoft Visual Studio14
第2章 现代C 16
2.1 初始化变量16
2.2 使用初始化列表初始化对象19
2.3 使用类型推断21
2.4 在函数中使用auto关键字24
2.5 编译时常量的使用26
2.6 lambda的使用29
2.7 与时间有关的程序37
2.8 理解左值引用和右值引用41
2.9 使用托管指针48
第3章 文本的处理55
3.1 用字面量表示代码中的字符串55
3.2 面向用户的本地化文本60
3.3 从文件中读取字符串66
3.4 从XML文件中读取数据69
3.5 在字符串中插入运行时数据74
第4章 数字的处理78
4.1 在C 中使用整数类型78
4.2 用关系运算符做决策82
4.3 用逻辑运算符进行链式决策86
4.4 使用十六进制值88
4.5 二进制运算符的位运算89
4.6 C 20的宇宙飞船运算符96
第5章 类98
5.1 定义一个类98
5.2 向类中添加数据99
5.3 向类中添加方法101
5.4 使用访问修饰符103
5.5 初始化类成员变量106
5.6 类的清理110
5.7 类的拷贝113
5.8 使用移动语义优化代码121
5.9 实现虚函数125
第6章 继承127
6.1 类的继承127
6.2 对派生类中的成员变量和方法进行访问控制129
6.3 隐藏派生类中的方法133
6.4 使用多态基类135
6.5 防止方法重写138
6.6 创建接口140
6.7 多重继承142
第7章 标准模板库的容器145
7.1 存储固定数量的对象145
7.2 存储更多的对象147
7.3 存储一组不断变化的元素154
7.4 将排序对象存储在容器中以便快速查找157
7.5 将未排序的元素存储在容器中以便快速查找165
7.6 使用C 20的“指定初始化”特性168
第8章 标准模板库的算法170
8.1 在容器中使用迭代器定义序列170
8.2 对容器中的每个元素都调用函数175
8.3 查找容器中的值和小值177
8.4 计算序列中某个值的出现次数181
8.5 查找序列中的值184
8.6 排序序列中的元素185
8.7 查找集合中的值187
第9章 模板189
9.1 创建模板函数189
9.2 模板偏特化192
9.3 创建类模板198
9.4 创建单例200
9.5 在编译时计算值202
9.6 concept特性205
第10章 内存207
10.1 静态内存的使用207
10.2 栈内存的使用209
10.3 堆内存的使用213
10.4 自动共享内存的使用215
10.5 创建单实例动态对象218
10.6 创建智能指针222
10.7 通过重载new和delete调试内存问题229
10.8 确定代码更改对性能的影响235
10.9 了解内存选择对性能的影响237
10.10 减少内存碎片问题240
第11章 并发252
11.1 使用线程执行并发任务252
11.2 创建线程作用域变量257
11.3 使用互斥的方式访问共享对象268
11.4 创建等待事件的线程277
11.5 从线程中检索结果282
11.6 在线程之间同步队列消息286
第12章 网络298
12.1 在macOS上设置Berkeley Sockets应用程序298
12.2 在Ubuntu的Eclipse中设置Berkeley Sockets应用程序301
12.3 在Windows的Visual Studio中设置Winsock 2应用程序305
12.4 在两个程序之间创建一个Socket连接309
12.5 在两个程序之间创建网络协议330
第13章 脚本346
13.1 在Visual Studio C 中运行Lua命令346
13.2 在Eclipse中创建一个Lua项目350
13.3 在Xcode中创建一个Lua项目352
13.4 使用Lua编程语言353
13.5 从C 中调用Lua函数362
13.6 从Lua中调用C函数371
13.7 创建异步Lua函数377
第14章 3D图形编程383
14.1 GLFW简介383
14.2 渲染三角形386
14.3 创建纹理四边形396
14.4 从文件中加载几何体416
14.5 使用C 20的module特性433
內容試閱 :
C 编程语言正在不断地发展和完善。C 始终保持生命力的原因是,它仍然在高性能、可移植的应用程序中扮演着重要的角色。很少有语言像C 一样,可以在如此多的平台上使用,而不依赖运行时环境。这是因为C 是编译型编程语言,C 程序通过编译和链接构建到应用程序二进制文件中。
编译器的选择在当今C 领域尤为重要,这要归因于语言变化的速度。Bjarne Stroustrup于1979年开始开发C 编程语言,当时C 被称为带类的C语言。直到1998年,C 语言才开始正式标准化。2003年发布了更新的标准,此后又经过8年,直到2011年C 11发布,该标准再次进行了更新。此版本进行了大量更新,被称为“现代C ”,以区别于“老式C ”。C 17和C 20摒弃了过时的特性,为语言带来了许多重大的变化。
本书介绍使用Clang编译器、Microsoft Visual Studio(VS)2019和Xcode为C 14到C 20 ISO标准编写的代码。Clang是一个开源编译器,初是苹果公司的闭源项目。苹果公司于2007年向开源社区发布了该代码,此后,Clang一直在扩大其优势。本书介绍了如何在运行OS X、Windows或Linux(Ubuntu)的计算机上安装和使用Clang。各章的示例已使用Clang 3.5或Visual Studio 2019进行了编译和测试。本书列出的所有应用程序都是免费的,你可以根据需求来使用它们。