• 21天学通C++
21年品牌 40万+商家 超1.5亿件商品

21天学通C++

正版保障 假一赔十 可开发票

79.07 6.6折 119.8 全新

库存83件

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

作者(美)悉达多·饶(Siddhartha Rao)著

出版社人民邮电出版社

ISBN9787115616838

出版时间2023-08

装帧平装

开本16开

定价119.8元

货号13433805

上书时间2024-10-28

灵感书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
悉达多·饶(Siddhartha Rao)是SAP SE公司主管产品安全的副总裁,其作品享誉全球,并被翻译成法语和中文。他深信C++发展快速,并致力于为机器学习和人工智能领域的发展添砖加瓦。

目录
第一部分 基础知识

 第1章 绪论 2

 1.1 C++简史 2

 1.1.1 与C语言的关系 2

 1.1.2 C++的优点 2

 1.1.3 C++标准的发展历程 3

 1.1.4 哪些人使用C++程序 3

 1.2 编写C++应用程序 3

 1.2.1 生成可执行文件的步骤 3

 1.2.2 分析并修复错误 4

 1.2.3 集成开发环境 4

 1.2.4 编写第一个C++应用程序 4

 1.2.5 生成并执行第一个C++应用程序 5

 1.2.6 理解编译错误 7

 1.3 C++20新增的功能 7

 1.4 总结 8

 1.5 问与答 8

 1.6 作业 8

 1.6.1 测验 8

 1.6.2 练习 9

 第2章 C++程序的组成部分 10

 2.1 Hello World程序的组成部分 10

 2.1.1 预处理器编译指令#include 10

 2.1.2 程序的主体:main( ) 11

 2.1.3 返回值 12

 2.2 命名空间的概念 12

 2.3 C++代码中的注释 13

 2.4 C++函数 14

 2.5 使用std::cin和std::cout执行基本输入输出操作 16

 2.6 总结 17

 2.7 问与答 17

 2.8 作业 17

 2.8.1 测验 18

 2.8.2 练习 18

 第3章 使用变量和常量 19

 3.1 什么是变量 19

 3.1.1 内存和寻址概述 19

 3.1.2 声明变量以访问和使用内存 19

 3.1.3 声明并初始化多个类型相同的变量 21

 3.1.4 理解变量的作用域 21

 3.1.5 全局变量 22

 3.1.6 命名约定 24

 3.2 编译器支持的常见C++变量类型 24

 3.2.1 使用bool变量存储布尔值 25

 3.2.2 使用char变量存储字符 25

 3.2.3 有符号整数和无符号整数的概念 26

 3.2.4 有符号整型short、int、long和long long 26

 3.2.5 无符号整型unsigned short、unsigned int、unsigned long和unsigned long long 26

 3.2.6 选择正确的数据类型以免发生溢出错误 27

 3.2.7 浮点类型float和double 28

 3.3 使用sizeof确定变量的长度 28

 3.4 使用auto自动推断类型 30

 3.5 使用typedef替换变量类型 31

 3.6 什么是常量 31

 3.6.1 字面常量 32

 3.6.2 使用const将变量声明为常量 32

 3.6.3 使用constexpr定义常量表达式 33

 3.6.4 使用consteval定义C++20即时函数 34

 3.6.5 枚举 35

 3.6.6 域限定枚举 37

 3.6.7 使用#define定义常量 37

 3.7 不能用作常量或变量名的关键字 37

 3.8 总结 38

 3.9 问与答 38

 3.10 作业 39

 3.10.1 测验 39

 3.10.2 练习 40

 第4章 管理数组和字符串 41

 4.1 什么是数组 41

 4.2 多维数组 46

 4.3 动态数组 48

 4.4 C风格字符串 49

 4.5 C++字符串:使用std::string 51

 4.6 总结 52

 4.7 问与答 53

 4.8 作业 53

 第5章 使用表达式、语句和运算符 54

 5.1 语句 54

 5.2 复合语句(语句块) 55

 5.3 使用运算符 55

 5.4 总结 72

 5.5 问与答 72

 5.6 作业 73

 第6章 控制程序流程 74

 6.1 使用if...else有条件地执行 74

 6.2 在循环中执行代码 84

 6.3 使用continue和break修改循环的行为 93

 6.4 编写嵌套循环 96

 6.5 总结 99

 6.6 问与答 100

 6.7 作业 100

 第7章 使用函数组织代码 102

 7.1 为何需要函数 102

 7.2 使用函数处理不同类型的数据 110

 7.3 微处理器如何处理函数调用 114

 7.4 总结 118

 7.5 问与答 118

 7.6 作业 119

 第8章 阐述指针和引用 121

 8.1 什么是指针 121

 8.2 动态内存分配 127

 8.3 使用指针时常犯的编程错误 136

 8.4 指针编程很好实践 140

 8.5 引用是什么 140

 8.6 总结 144

 8.7 问与答 144

 8.8 作业 145

 第二部分 C++面向对象编程基础

 第9章 类和对象 148

 9.1 类和对象 148

 9.2 关键字public和private 151

 9.3 构造函数 154

 9.4 析构函数 161

 9.5 复制构造函数 163

 9.6 构造函数和析构函数的其他用途 170

 9.7 this指针 176

 9.8 将sizeof( )用于类 176

 9.9 结构不同于类的地方 178

 9.10 声明友元 179

 9.11 共用体:一种特殊的数据存储机制 180

 9.12 对类和结构使用聚合初始化 183

 9.13 总结 186

 9.14 问与答 186

 9.15 作业 187

 第10章 实现继承 188

 10.1 继承基础 188

 10.2 私有继承 203

 10.3 保护继承 205

 10.4 切除问题 207

 10.5 多继承 208

 10.6 使用final禁止继承 210

 10.7 总结 210

 10.8 问与答 211

 10.9 作业 211

 第11章 多态 213

 11.1 多态基础 213

 11.1.1 为何需要多态行为 213

 11.1.2 使用虚函数实现多态行为 214

 11.1.3 为何需要虚构造函数 216

 11.1.4 虚函数的工作原理——理解虚函数表 219

 11.1.5 抽象基类和纯虚函数 222

 11.2 使用虚继承解决菱形问题 224

 11.3 使用限定符override明确覆盖意图 227

 11.4 使用final来禁止覆盖函数 228

 11.5 可将复制构造函数声明为虚函数吗 229

 11.6 总结 232

 11.7 问与答 232

 11.8 作业 233

 11.8.1 测验 233

 11.8.2 练习 233

 第12章 运算符类型与运算符重载 234

 12.1 C++运算符 234

 12.2 单目运算符 235

 12.3 双目运算符 241

 12.4 函数运算符( ) 257

 12.5 用于高性能编程的移动构造函数和 移动赋值运算符 258

 12.6 用户定义的字面量 263

 12.7 不能重载的运算符 265

 12.8 总结 265

 12.9 问与答 265

 12.10 作业 266

 第13章 类型转换运算符 267

 13.1 为何需要类型转换 267

 13.2 为何有些C++程序员不喜欢C风格 类型转换 268

 13.3 C++类型转换运算符 268

 13.4 C++类型转换运算符存在的问题 273

 13.5 总结 274

 13.6 问与答 274

 13.7 作业 275

 第14章 宏和模板简介 276

 14.1 预处理器与编译器 276

 14.2 使用#define定义常量 276

 14.3 使用#define编写宏函数 279

 14.4 模板简介 283

 14.5 总结 295

 14.6 问与答 296

 14.7 作业 296

 第三部分 学习标准模板库

 第15章 标准模板库简介 298

 15.1 STL容器 298

 15.2 STL迭代器 300

 15.3 STL算法 300

 15.4 使用迭代器在容器和算法之间交互 300

 15.5 选择正确的容器 302

 15.6 STL字符串类 303

 15.7 总结 303

 15.8 问与答 303

 15.9 作业 304

 第16章 STL string类 305

 16.1 为何需要字符串操作类 305

 16.2 使用STL string类 306

 16.3 基于模板的STL string实现 316

 16.4 std::string中的operator ""s 316

 16.5 使用C++20改进了的std::string_view 317

 16.6 总结 318

 16.7 问与答 319

 16.8 作业 319

 第17章 STL动态数组类 320

 17.1 std::vector的特点 320

 17.2 典型的vector操作 320

 17.2.1 实例化vector 320

 17.2.2 使用push_back( )在vector末尾 插入元素 322

 17.2.3 列表初始化 322

 17.2.4 使用insert( )在指定位置 插入元素 323

 17.2.5 使用数组语法访问vector中的 元素 325

 17.2.6 使用指针语法访问vector中的 元素 326

 17.2.7 删除vector中的元素 327

 17.3 理解大小和容量 328

 17.4 STL deque 类 329

 17.5 总结 332

 17.6 问与答 332

 17.7 作业 333

 17.7.1 测验 333

 17.7.2 练习 333

 第18章 STL list和forward_list 334

 18.1 std::list的特点 334

 18.2 基本的list操作 334

 18.3 对list中的元素进行反转和排序 340

 18.4 总结 347

 18.5 问与答 347

 18.6 作业 348

 第19章 STL set和multiset 349

 19.1 简介 349

 19.2 STL set和multiset的基本操作 349

 19.3 使用STL set和multiset的优缺点 358

 19.4 总结 360

 19.5 问与答 361

 19.6 作业 361

 第20章 STL map和multimap 362

 20.1 STL映射类简介 362

 20.2 STL map和multimap的基本操作 363

 20.3 提供自定义的排序谓词 371

 20.4 基于键值对的STL散列表容器 374

 20.5 总结 377

 20.6 问与答 378

 20.7 作业 378

 第四部分 lambda表达式和STL算法

 第21章 理解函数对象 382

 21.1 函数对象与谓词的概念 382

 21.2 函数对象的典型用途 382

 21.3 总结 391

 21.4 问与答 392

 21.5 作业 392

 第22章 lambda表达式 393

 22.1 lambda表达式是什么 393

 22.2 如何定义lambda表达式 394

 22.3 一元函数对应的lambda表达式 395

 22.4 一元谓词对应的lambda表达式 396

 22.5 通过捕获列表接收状态的lambda 表达式 397

 22.6 二元函数对应的lambda表达式 399

 22.7 二元谓词对应的lambda表达式 400

 22.8 总结 402

 22.9 问与答 402

 22.10 作业 402

 第23章 STL算法 404

 23.1 什么是STL算法 404

 23.2 STL算法的分类 404

 23.3 使用STL算法 406

 23.4 C++20约束算法 426

 23.5 总结 428

 23.6 问与答 428

 23.7 作业 429

 第24章 自适应容器:栈和队列 430

 24.1 栈和队列的行为特征 430

 24.2 使用STL stack类 431

 24.3 使用STL queue类 434

 24.4 使用STL优先级队列 437

 24.5 总结 441

 24.6 问与答 441

 24.7 作业 441

 第25章 使用STL位标志 442

 25.1 bitset类 442

 25.2 使用std::bitset及其成员 443

 25.3 vector 446

 25.4 总结 448

 25.5 问与答 448

 25.6 作业 448

 第五部分 C++进阶概念

 第26章 理解智能指针 452

 26.1 什么是智能指针 452

 26.2 智能指针是如何实现的 453

 26.3 智能指针类型 454

 26.4 深受欢迎的智能指针库 460

 26.5 总结 460

 26.6 问与答 461

 26.7 作业 461

 第27章 使用流进行输入和输出 462

 27.1 流的概述 462

 27.2 重要的C++流类和流对象 463

 27.3 使用std::cout将指定格式的数据写入控制台 464

 27.4 使用std::cin进行输入 466

 27.5 使用std::fstream处理文件 469

 27.6 使用std::stringstream对字符串进行转换 474

 27.7 总结 475

 27.8 问与答 475

 27.9 作业 476

 第28章 异常处理 477

 28.1 什么是异常 477

 28.2 导致异常的因素 477

 28.3 使用try和catch捕获异常 477

 28.4 异常处理的工作原理 481

 28.5 总结 485

 28.6 问与答 485

 28.7 作业 486

 第29章 C++20概念、范围、视图和适配器 488

 29.1 概念 488

 29.2 范围库、视图和适配器 494

 29.3 总结 499

 29.4 问与答 499

 29.5 作业 499

 第30章 C++20线程 501

 30.1 多线程技术 501

 30.2 总结 504

 30.3 问与答 505

 30.4 作业 505

 第31章 C++20模块和C++23 506

 31.1 模块 506

 31.2 C++23有望引入的特性 509

 31.3 更深入地学习C++ 509

 31.4 总结 509

 31.5 问与答 510

 31.6 作业 510

 附录A 二进制和十六进制 511

 A.1 十进制 511

 A.2 二进制 511

 A.2.1 计算机为何使用二进制 512

 A.2.2 位和字节 512

 A.2.3 1KB相当于多少字节 512

 A.3 十六进制 512

 A.4 不同进制之间的转换 513

 A.4.1 通用的转换步骤 513

 A.4.2 从十进制转换为二进制 513

 A.4.3 从十进制转换为十六进制 514

 附录B C++关键字 515

 附录C 编写杰出的C++代码 516

 附录D ASCII 517

 附录E 答案 520

内容摘要
这是一本经典的C++编程入门指南,第9版针对C++20标准进行了内容上的全面更新,旨在帮助读者编写更快、更简单、更可靠的C++代码,并掌握C++和面向对象编程的基本原理。
本书通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术应用,以及C++20新增的功能,这些内容被组织成结构合理、联系紧密的章节。每章都提供了示例程序清单,并辅以示例输出和代码分析,以进一步阐述该章的主题。为帮助读者巩固所学的内容,每章末尾都提供了常见问题相关答案以及作业。读者可对照附录E提供的答案,了解自己对所学内容的掌握程度。
本书面向C++初学者,不要求读者有C语言方面的背景知识,可作为高等院校教授C++课程的教材,也可供初学者自学C++时使用。

主编推荐
1.本书详细分析了近300个带有详细注释的代码示例,覆盖C++20和C++23语言特性,并描述了其内部工作原理。无论是初学者还是专业程序员,都能了解到本书所具有的宝贵价值。 2.本书通过科学合理的内容安排让读者在21天内学通C++,符合读者期望快速入门C++的心理。 3.本书通过“注意”“警告”“提示”“黑名单”“白名单”等板块设计让读者轻松愉快地学会C++。 4.本书提供可下载的代码示例,方便读者亲手实践。

精彩内容
这是一本经典的C++编程入门指南,第9版针对C++20标准进行了内容上的全面更新,旨在帮助读者编写更快、更简单、更可靠的C++代码,并掌握C++和面向对象编程的基本原理。本书通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术应用,以及C++20新增的功能,这些内容被组织成结构合理、联系紧密的章节。每章都提供了示例程序清单,并辅以示例输出和代码分析,以进一步阐述该章的主题。为帮助读者巩固所学的内容,每章末尾都提供了常见问题相关答案以及作业。读者可对照附录E提供的答案,了解自己对所学内容的掌握程度。本书面向C++初学者,不要求读者有C语言方面的背景知识,可作为高等院校教授C++课程的教材,也可供初学者自学C++时使用。

—  没有更多了  —

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

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