
包邮C++20高级编程(第5版)

- ISBN:9787302602132
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:1000
- 出版时间:2022-04-01
- 条形码:9787302602132 ; 978-7-302-60213-2
本书特色
拥抱C++的深度和复杂性,挖掘更多可能 众所周知,C++难以掌握,但其广泛的功能使其成为游戏和商业软件应用程序中*常用的语言。即使是有经验的用户通常也不熟悉许多高级特性,但C++20的发布提供了探索该语言全部功能的机会。《C++20高级编程(第5版)》为C++的必要内容提供了一个代码密集型、面向解决方案的指南,包括版本中的工具和功能。本书包含面向现实世界编程的实用指导,是程序员深入研究C++的理想机会。第5版涵盖了C++20的内容。
内容简介
主要内容 ● 演示如何用C++思考,以*大限度地发挥语言的深远能力,并开发有效的解决方案 ● 解释难以理解的原理,进行陷阱警告,分享提高效率和性能的提示、技巧和变通方法 ● 呈现各种具有挑战性的、真实世界的程序,其用途广泛,足以融入任何项目 ● 重点介绍C++20的新特性,包括模块、概念、三向比较、立即执行函数等 ● 深入讨论新的C++20标准库功能,例如文本格式化、范围、原子智能指针、同步原语、日期、时区等
目录
第I部分 专业的C++简介
第1章 C++和标准库速成 3
1.1 C++速成 3
1.1.1 小程序“Hello World” 4
1.1.2 名称空间 7
1.1.3 字面量 9
1.1.4 变量 9
1.1.5 运算符 12
1.1.6 枚举类型 14
1.1.7 结构体 16
1.1.8 条件语句 17
1.1.9 条件运算符 19
1.1.10 逻辑比较运算符 20
1.1.11 三向比较运算符 21
1.1.12 函数 22
1.1.13 属性 23
1.1.14 C风格的数组 26
1.1.15 std::array 27
1.1.16 std::vector 28
1.1.17 std::pair 28
1.1.18 std::optional 29
1.1.19 结构化绑定 30
1.1.20 循环 30
1.1.21 初始化列表 31
1.1.22 C++中的字符串 32
1.1.23 作为面向对象语言的C++ 32
1.1.24 作用域解析 35
1.1.25 统一初始化 36
1.1.26 指针和动态内存 39
1.1.27 const的用法 43
1.1.28 constexpr关键字 45
1.1.29 consteval关键字 46
1.1.30 引用 47
1.1.31 const_cast() 55
1.1.32 异常 56
1.1.33 类型别名 56
1.1.34 类型定义 57
1.1.35 类型推断 58
1.1.36 标准库 60
1.2 **个大型的C++程序 61
1.2.1 雇员记录系统 61
1.2.2 Employee类 61
1.2.3 Database类 64
1.2.4 用户界面 67
1.2.5 评估程序 69
1.3 本章小结 69
1.4 练习 69
第2章 使用string和string_view 71
2.1 动态字符串 71
2.1.1 C风格字符串 71
2.1.2 字符串字面量 73
2.1.3 C++ std::string类 75
2.1.4 数值转换 78
2.1.5 std::string_view类 81
2.1.6 非标准字符串 84
2.2 字符串格式化 84
2.2.1 格式说明符 85
2.2.2 格式说明符错误 87
2.2.3 支持自定义类型 87
2.3 本章小结 90
2.4 练习 90
第3章 编码风格 91
3.1 良好外观的重要性 91
3.1.1 事先考虑 91
3.1.2 良好风格的元素 92
3.2 为代码编写文档 92
3.2.1 使用注释的原因 92
3.2.2 注释的风格 96
3.3 分解 99
3.3.1 通过重构分解 100
3.3.2 通过设计分解 101
3.3.3 本书中的分解 101
3.4 命名 101
3.4.1 选择恰当的名称 101
3.4.2 命名约定 102
3.5 使用具有风格的语言特性 103
3.5.1 使用常量 104
3.5.2 使用引用代替指针 104
3.5.3 使用自定义异常 104
3.6 格式 105
3.6.1 关于大括号对齐的争论 105
3.6.2 关于空格和圆括号的争论 106
3.6.3 空格、制表符、换行符 106
3.7 风格的挑战 107
3.8 本章小结 107
3.9 练习 107
第II部分 专业的C++软件设计
第4章 设计专业的C++程序 113
4.1 程序设计概述 113
4.2 程序设计的重要性 114
4.3 C++设计 116
4.4 C++设计的两个原则 116
4.4.1 抽象 116
4.4.2 重用 118
4.5 重用现有代码 119
4.5.1 关于术语的说明 119
4.5.2 决定是否重用代码 120
4.5.3 重用代码的指导原则 121
4.6 设计一个国际象棋程序 127
4.6.1 需求 127
4.6.2 设计步骤 127
4.7 本章小结 132
4.8 练习 133
第34章 开发跨平台和跨语言的应用程序 935
34.1 跨平台开发 935
34.1.1 架构问题 935
34.1.2 实现问题 938
34.1.3 平台专用功能 940
34.2 跨语言开发 940
34.2.1 混用C和C++ 941
34.2.2 改变范型 941
34.2.3 链接C代码 944
34.2.4 从C#调用C++代码 946
34.2.5 C++/CLI在C++中使用C#代码和在C#中使用C++代码 947
34.2.6 在Java中使用JNI调用C++代码 948
34.2.7 从C++代码调用脚本 950
34.2.8 从脚本调用C++代码 950
34.2.9 从C++调用汇编代码 952
34.3 本章小结 953
34.4 练习 953
第VI部分 附录
附录A C++面试 957
在线资源(扫描封底二维码下载)
附录B 标准库头文件 977
附录C UML简介 983
附录D 带注解的参考文献 989
作者简介
Marc Gregoire是一名软件工程师,毕业于比利时鲁汶大学,拥有计算机科学工程硕士学位。之后,他在鲁汶大学又获得人工智能专业的优等硕士学位。完成学业后,他开始为软件咨询公司Ordina Belgium工作。他曾在Siemens 和Nokia Siemens Networks为大型电信运营商提供有关在Solaris上运行关键2G和3G软件的咨询服务。这份工作要求与来自南美、美国、欧洲、中东、非洲和亚洲的国际团队合作。Marc目前担任Nikon Metrology(www.nikonmetrology.com)的软件架构师;Nikon Metrology是Nikon的一个部门,是精密光学仪器、X光机等设备和X光、CT和3D扫描解决方案的领先供应商。 Marc的主要技术专长是C/C++,特别是Microsoft VC++和MFC框架。他还擅长在Windows和Linux平台上开发24×7运行的C++程序,例如KNX/EIB家庭自动化监控软件。除了C/C++之外,Marc还喜欢C#。 2007年4月,他凭借Visual C++方面的专业技能,获得了微软年度MVP称号。 Marc还是比利时C++用户组(www.becpp.org)的创始人,是C++ Standard Library Quick Reference 第1版和第2版(Apress)的共同作者,以及多家出版社出版的多种书籍的技术编辑,是C++大会CppCon的活跃演讲者。
-
大数据技术导论(第2版)
¥28.9¥41.0 -
微信小程序开发教程
¥37.7¥49.0 -
机器学习
¥69.0¥108.0 -
大模型应用开发极简入门 基于GPT-4和ChatGPT
¥41.9¥59.8 -
C程序设计(第五版)
¥34.5¥59.9 -
数据结构教程(第6版·微课视频·题库版)
¥42.6¥65.0 -
计算机组成原理实验指导与习题解析
¥34.8¥52.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥36.4¥68.0 -
大数据丛书数据可视化(第2版)
¥163.2¥259.0 -
人工智能
¥28.1¥55.0 -
数据结构基础(C语言版)(第2版)
¥42.6¥49.0 -
工业互联网安全创新技术及应用
¥96.0¥128.0 -
AI办公助手 ChatGPT+Office智能办公从入门到实践 80集视频课
¥64.8¥79.8 -
计算机网络基础(微课版)
¥45.6¥55.0 -
零信任架构
¥71.2¥89.0 -
剪映:即梦AI绘画与视频制作从新手到高手
¥62.3¥89.0 -
红蓝攻防 技术与策略(原书第3版)
¥111.2¥139.0 -
RFID与智能卡技术实验指导书
¥29.4¥36.0 -
人工智能导论(第2版)
¥32.8¥39.8 -
Web前端开发基础
¥37.5¥57.0