×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
暂无评论
图文详情
  • 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的活跃演讲者。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航