• 学习C++20 中文版
21年品牌 40万+商家 超1.5亿件商品

学习C++20 中文版

全新正版 极速发货

153.83 6.5折 238 全新

库存24件

广东广州
认证卖家担保交易快速发货售后保障

作者(美)保罗·J.戴特尔(Paul J. Deitel),(美) 哈维·M.戴特尔(Harvey M. Deitel)

出版社清华大学出版社

ISBN9787302625438

出版时间2023-05

装帧平装

开本16开

定价238元

货号1202983447

上书时间2024-06-11

曲奇书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
保罗·J.戴特尔(Paul J. Deitel)毕业于麻省理工学院(MIT),有42年计算机行业的工作经验。他是全球知名的编程语言培训师之一,自1992年以来一直在为软件开发人员讲授专业课程。他与哈维·M.戴特尔(Harvey M. Deitel)博士共同编写了全球最畅销的编程教材、专业书籍、视频和互动多媒体电子学习内容。

目录
第Ⅰ部分 编程基础

第1章 免费、流行的C++编译器003

第2章 C++编程入门025

第3章 控制语句(上)045

第4章 控制语句(下)077

第5章 函数和函数模板入门113

第Ⅱ部分 数组、指针和字符串

第6章 数组、向量、范围和函数式编程171

第7章 现代C++对指针的淡化211

第8章 string、string_view、文本文件、CSV文件和正则表达式247

第Ⅲ部分 面向对象程序设计

第9章 自定义类303

第10章 OOP:继承和运行时多态性379

第11章 操作符重载、拷贝/移动语义和智能指针467

第12章 异常和对契约的展望527

第Ⅳ部分 标准库容器、迭代器和算法

第13章 标准库容器和迭代器571

第14章 标准库算法和C++20范围/视图625

第Ⅴ部分 高级编程主题

第15章 模板、C++20“概念”和元编程703

第16章 C++20模块:大规模开发797

第17章 并行算法和并发性:高级观点851

第18章 C++20协程994

附录A 操作符优先级和分组969

附录B 字符集971

详细目录

第Ⅰ部分 编程基础

第1章 免费、流行的C++编译器

1.1 导读004

1.2 试运行一个C++20应用程序005

1.2.1 在Windows上用VS 2022社区版编译和运行C++20应用程序005

1.2.2 在macOS上用Xcode编译和运行C++20应用程序009

1.2.3 在Linux上用GNU C++运行C++20应用程序013

1.2.4 在GCC Docker容器中编译和运行C++20应用程序015

1.2.5 在Docker容器中使用clang++来编译和运行C++20应用程序016

1.3 摩尔定律、多核处理器和并发编程018

1.4 面向对象简单回顾019

1.5 小结021

第2章 C++编程入门

2.1 导读026

2.2 第一个C++程序:显示单行文本026

2.3 修改第一个C++程序030

2.4 另一个C++程序:整数相加031

2.5 算术运算035

2.6 决策:相等性和关系操作符036

2.7 对象自然案例学习:创建和使用标准库类string的对象040

2.8 小结044

第3章 控制语句(上)

3.1 导读046

3.2 控制结构046

3.2.1 顺序结构046

3.2.2 选择语句047

3.2.3 循环语句048

3.2.4 控制语句小结049

3.3 if选择语句049

3.4 if…else双选语句050

3.4.1 嵌套if…else语句051

3.4.2 代码块052

3.4.3 条件操作符( :)053

3.5 while循环语句053

3.6 计数器控制的循环054

3.6.1 实现计数器控制的循环054

3.6.2 整数除法和截断056

3.7 哨兵值控制的循环056

3.7.1 实现哨兵值控制的循环057

3.7.2 基础类型之间的显式和隐式转换059

3.7.3 格式化浮点数060

3.8 嵌套控制语句061

3.8.1 问题陈述061

3.8.2 实现程序062

3.8.3 用大括号初始化防止收缩转换064

3.9 复合赋值操作符065

3.10 递增和递减操作符065

3.11 基本类型不可移植068

3.12 对象自然案例学习:任意大小的整数068

3.13 C++20:用format函数格式化文本073

3.14 小结075

第4章 控制语句(下)

4.1 导读078

4.2 计数器控制的循环的本质078

4.3 for循环语句079

4.4 for循环的例子081

4.5 应用程序:累加偶数整数082

4.6 应用程序:复利计算083

4.7 do…while循环语句087

4.8 switch多选语句088

4.9 使用带初始化器的C++17选择语句094

4.10 break语句和continue语句095

4.11 逻辑操作符097

4.11.1 逻辑AND(&&)操作符098

4.11.2 逻辑OR(||)操作符098

4.11.3 短路求值099

4.11.4 逻辑非(!)操作符099

4.11.5 示例:生成逻辑操作符真值表100

4.12 混淆相等性(==)和赋值(=)操作符102

4.13 对象自然案例学习:使用miniz-cpp库读写ZIP文件8103

4.14 用域宽和精度进行C++20文本格式化108

4.15 小结110

第5章 函数和函数模板入门

5.1 导读114

5.2 C++程序组件114

5.3 数学库函数115

5.4 函数定义和函数原型117

5.5 函数实参的求值顺序120

5.6 函数原型和实参强制类型转换的有关注意事项120

5.6.1 函数签名和函数原型121

5.6.2 实参强制类型转换121

5.6.3 实参提升规则和隐式转换121

5.7 C++标准库头文件123

5.8 案例学习:随机数生成126

5.8.1 掷六面骰子127

5.8.2 六面骰子掷6000万次127

5.8.3 为给随机数生成器提供种子129

5.8.4 用random_device为随机数生成器提供种子131

5.9 案例学习:概率游戏,介绍有作用域的enum 131

5.10 作用域规则137

5.11 内联函数142

5.12 引用和引用参数143

5.13 默认参数146

5.14 一元作用域解析操作符147

5.15 函数重载148

5.16 函数模板152

5.17 递归155

5.18 递归示例:斐波那契数列158

5.19 对比递归和循环161

5.20 Lnfylun Lhqtomh Wjtz Qarcv: Qjwazkrplm xzz Xndmwwqhlz163

5.21 小结166

第Ⅱ部分 数组、指针和字符串

第6章 数组、向量、范围和函数式编程

6.1 导读172

6.2 数组172

6.3 声明数组173

6.4 用循环初始化数组元素173

6.5 用初始化器列表初始化数组176

6.6 C++11基于范围的for和C++20带初始化器的基于范围的for177

6.7 计算数组元素值并理解constexpr180

6.8 累加数组元素182

6.9 使用简陋的条形图以图形方式显示数组数据182

6.10 数组元素作为计数器使用184

6.11 使用数组来汇总调查结果186

6.12 数组排序和查找187

6.13 多维数组189

6.14 函数式编程入门194

6.14.1 做什么和怎么做194

6.14.2 函数作为实参传给其他函数:理解lambda表达式195

6.14.3 过滤器、映射和归约:理解C++20的“范围”库197

6.15 对象自然案例学习:C++标准库类模板vector201

6.16 小结208

第7章 现代C++对指针的淡化

7.1 导读212

7.2 声明和初始化指针变量213

7.2.1 声明指针214

7.2.2 初始化指针214

7.2.3 C++11之前的空指针214

7.3 指针操作符214

7.3.1 取址(&)操作符215

7.3.2 间接寻址(*)操作符215

7.3.3 使用取址(&)和间接寻址(*)操作符216

7.4 用指针传引用217

7.5 内置数组221

7.5.1 声明和访问内置数组222

7.5.2 初始化内建数组222

7.5.3 向函数传递内置数组222

7.5.4 声明内置数组参数223

7.5.5 C++11标准库函数begin和end223

7.5.6 内置数组的223

7.6 使用C++20 to_array将内置数组转换成std::array224

7.7 为指针和它指向的数据使用const225

7.7.1 指向非常量数据的非常量指针226

7.7.2 指向常量数据的非常量指针226

7.7.3 指向非常量数据的常量指针227

7.7.4 指向常量数据的常量指针228

7.8 sizeof操作符229

7.9 指针表达式和指针算术232

7.9.1 在指针上加减整数232

7.9.2 从指针上减一个指针233

7.9.3 指针赋值234

7.9.4 不能解引用void*234

7.9.5 指针比较234

7.10 对象自然案例学习:C++20 span,连续容器元素的视图234

7.11 理解基于指针的字符串240

7.11.1 命令行参数242

7.11.2 再论C++20的to_array函数243

7.12 展望其他指针主题244

7.13 小结245

第8章 string、string_view、文本文件、CSV文件和正则表达式

8.1 导读248

8.2 字符串赋值和连接249

8.3 字符串比较251

8.4 子串253

8.5 交换字符串254

8.6 收集string特征信息254

8.7 在字符串中查找子串和字符257

8.8 替换和删除字符串中的字符260

8.9 在字符串中插入字符262

8.10 C++11数值转换263

8.11 C++17 string_view264

8.12 文件和流267

8.13 创建顺序文件268

8.14 从顺序文件读取数据271

8.15 C++14读取和写入引号文本274

8.16 更新顺序文件275

8.17 字符串流处理276

8.18 原始字符串字面值279

8.19 对象自然案例学习:读取和分析包含泰坦尼克号灾难数据的CSV文件280

8.19.1 使用 rapidcsv 读取 CSV 文件的内容280

8.19.2 读取和分析泰坦尼克号灾难数据集282

8.20 对象自然案例学习:理解正则表达式290

8.20.1 将完整字符串与模式相匹配291

8.20.2 替换子串296

8.20.3 查找匹配296

8.21 小结299

第Ⅲ部分 面向对象程序设计

第9章 自定义类

9.1 导读304

9.2 体验Account对象304

9.3 具有赋值和取值成员函数的Account类306

9.3.1 类定义306

9.3.2 访问说明符private和public309

9.4 Account类:自定义构造函数309

9.5 赋值和取值成员函数的软件工程优势313

9.6 含有余额的Account类314

9.7 Time类案例学习:分离接口与实现318

9.7.1 类的接口319

9.7.2 分离接口与实现319

9.7.3 类定义320

9.7.4 成员函数321

9.7.5 在源代码文件中包含类的头文件322

9.7.6 作用域解析操作符(::)322

9.7.7 成员函数setTime和抛出异常323

9.7.8 成员函数to24HourString和to12HourString323

9.7.9 隐式内联的成员函数324

9.7.10 成员函数与全局函数324

9.7.11 使用Time类324

9.7.12 对象的大小326

9.8 编译和链接过程326

9.9 类作用域以及对类成员的访问327

9.10 访问函数和实用函数328

9.11 Time类案例学习:带有默认参数的构造函数329

9.11.1 Time类329

9.11.2 重载构造函数和C++11委托构造函数334

9.12 析构函数335

9.13 什么时候调用构造函数和析构函数335

9.14 Time类案例学习:返回到private数据成员的引用或指针时,须谨慎339

9.15 默认赋值操作符342

9.16 const对象和const成员函数344

9.17 合成:对象作为类成员346

9.18 友元函数和友元类351

9.19 this指针353

9.19.1 隐式和显式使用this指针访问对象的数据成员354

9.19.2 使用this指针来实现级联函数调用355

9.20 静态类成员:类级数据和成员函数359

9.21 C++20中的聚合364

9.21.1 初始化聚合365

9.21.2 C++20:指定初始化器365

9.22 对象自然案例学习:用JSON序列化366

9.22.1 序列化由包含public数据的对象构成的vector367

9.22.2 序列化由包含private数据的对象构成的vector372

9.23 小结374

第10章 OOP:继承和运行时多态性

10.1 导读380

10.2 基类和派生类382

10.2.1 CommunityMember类层次结构383

10.2.2 Shape类层次结构和public继承384

10.3 基类和派生类的关系385

10.3.1 创建和使用SalariedEmployee类385

10.3.2 创建SalariedEmployee/SalariedCommissionEmployee继承层次结构388

10.4 派生类中的构造函数和析构函数394

10.5 运行时多态性入门:多态性电子游戏395

10.6 继承层次结构中对象之间的关系396

10.6.1 从派生类对象调用基类函数397

10.6.2 派生类指针指向基类对象400

10.6.3 通过基类指针调用派生类成员函数401

10.7 虚函数和虚析构函数403

10.7.1 为什么虚函数这么有用?403

10.7.2 声明虚函数403

10.7.3 调用虚函数403

10.7.4 SalariedEmployee层次结构中的虚函数404

10.7.5 虚析构函数408

10.7.6 final成员函数和类408

10.8 抽象类和纯虚函数409

10.8.1 纯虚函数409

10.8.2 设备驱动程序:操作系统中的多态性410

10.9 案例学习:使用运行时多态性的薪资系统410

10.9.1 创建抽象基类Employee411

10.9.2 创建派生的具体类SalariedEmployee414

10.9.3 创建派生的具体类CommissionEmployee416

10.9.4 演示运行时多态性处理418

10.10 运行时多态性、虚函数和动态绑定的幕后机制421

10.11 非虚接口(NVI)惯用法425

10.12 藉由接口来编程,而不要藉由实现26432

10.12.1 重新思考Employee层次结构:CompensationModel接口434

10.12.2 Employee类434

10.12.3 实现CompensationModel436

10.12.4 测试新层次结构439

10.12.5 依赖注入在设计上的优势440

10.13 使用std::variant和std::visit实现运行时多态性441

10.14 多继承447

10.14.1 菱形继承452

10.14.2 用虚基类继承消除重复的子对象454

10.15 深入理解protected类成员456

10.16 public、protected和private继承457

10.17 更多运行时多态性技术和编译时多态性458

10.17.1 其他运行时多态性技术458

10.17.2 编译时(静态)多态性技术460

10.17.3 其他多态性概念461

10.18 小结461

第11章 操作符重载、拷贝/移动语义和智能指针

11.1 导读4

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP