- 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的活跃演讲者。
-
全图解零基础word excel ppt 应用教程
¥16.3¥48.0 -
C Primer Plus 第6版 中文版
¥62.6¥108.0 -
零信任网络:在不可信网络中构建安全系统
¥34.2¥59.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
情感计算
¥71.2¥89.0 -
大模型RAG实战 RAG原理、应用与系统构建
¥74.3¥99.0 -
大学计算机基础实验教程(MS Office版)——面向数据分析能力培养
¥29.1¥39.8 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥51.8¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥65.6¥89.8 -
LINUX实战——从入门到精通
¥49.0¥69.0 -
剪映AI
¥52.8¥88.0 -
快速部署大模型:LLM策略与实践(基于ChatGPT等大语言模型)
¥56.9¥79.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
数据存储架构与技术(第2版)
¥62.9¥89.8 -
纹样之美:中国传统经典纹样速查手册
¥81.8¥109.0 -
Java面向对象程序设计基础教程
¥35.9¥59.8 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0