• 21天学通C++(第8版) 中文版 9787115465887
  • 21天学通C++(第8版) 中文版 9787115465887
21年品牌 40万+商家 超1.5亿件商品

21天学通C++(第8版) 中文版 9787115465887

全新正版 _可开发票_极速发货

66.63 6.7折 99 全新

库存2件

天津西青
认证卖家担保交易快速发货售后保障

作者(美)悉达多·饶

出版社人民邮电出版社

ISBN9787115465887

出版时间2017-09

装帧平装

开本16开

定价99元

货号1202300495

上书时间2024-05-11

果然是好书店

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

   商品详情   

品相描述:全新
商品描述
目录
第1章绪论1

1.1C++简史1

1.1.1与C语言的关系1

1.1.2C++的优点1

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

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

1.2编写C++应用程序2

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

1.2.2分析并修复错误2

1.2.3集成开发环境3

1.2.4编写个C++应用程序3

1.2.5生成并执行个C++应用程序4

1.2.6理解编译错误5

1.3C++新增的功能5

1.4总结5

1.5问与答6

1.6作业6

1.6.1测验6

1.6.2练习6

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

2.1HelloWorld程序的组成部分8

2.1.1预处理器编译指令#include9

2.1.2程序的主体—main()9

2.1.3返回值10

2.2名称空间的概念10

2.3C++代码中的注释11

2.4C++函数12

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

2.6总结15

2.7问与答15

2.8作业15

2.8.1测验16

2.8.2练习16

第3章使用变量和常量17

3.1什么是变量17

3.1.1内存和寻址概述17

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

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

3.1.4理解变量的作用域19

3.1.5全局变量20

3.1.6命名约定22

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

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

3.2.2使用char变量存储字符23

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

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

3.2.5无符号整型unsignedshort、unsignedint、unsignedlong和unsignedlonglong25

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

3.2.7浮点类型float和double26

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

3.4使用auto自动推断类型28

3.5使用typedef替换变量类型29

3.6什么是常量30

3.6.1字面常量30

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

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

3.6.4枚举32

3.6.5使用#define定义常量34

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

3.8总结35

3.9问与答36

3.10作业37

3.10.1测验37

3.10.2练习37

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

4.1什么是数组38

4.1.1为何需要数组38

4.1.2声明和初始化静态数组39

4.1.3数组中的数据是如何存储的39

4.1.4访问存储在数组中的数据40

4.1.5修改存储在数组中的数据41

4.2多维数组43

4.2.1声明和初始化多维数组44

4.2.2访问多维数组中的元素44

4.3动态数组45

4.4C风格字符串46

4.5C++字符串:使用std::string48

4.6总结50

4.7问与答50

4.8作业50

4.8.1测验51

4.8.2练习51

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

5.1语句52

5.2复合语句(语句块)53

5.3使用运算符53

5.3.1赋值运算符(=)53

5.3.2理解左值和右值53

5.3.3加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)和求模运算符(%)53

5.3.4递增运算符(++)和递减运算符(--)54

5.3.5前缀还是后缀55

5.3.6相等运算符(==)和不等运算符(!=)56

5.3.7关系运算符56

5.3.8逻辑运算NOT、AND、OR和XOR58

5.3.9使用C++逻辑运算NOT(!)、AND(&&)和OR(||)59

5.3.10按位运算符NOT(~)、AND(&)、OR(|)和XOR(^)63

5.3.11按位右移运算符(>>)和左移运算符(<<)64

5.3.12复合赋值运算符65

5.3.13使用运算符sizeof确定变量占用的内存量67

5.3.14运算符优先级68

5.4总结69

5.5问与答69

5.6作业70

5.6.1测验70

5.6.2练习70

第6章控制程序流程71

6.1使用if…else有条件地执行71

6.1.1使用if…else进行条件编程72

6.1.2有条件地执行多条语句73

6.1.3嵌套if语句74

6.1.4使用switch-case进行条件处理77

6.1.5使用运算符:进行条件处理80

6.2在循环中执行代码81

6.2.1不成熟的goto循环81

6.2.2while循环83

6.2.3do…while循环84

6.2.4for循环86

6.2.5基于范围的for循环88

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

6.3.1不结束的循环—无限循环90

6.3.2控制无限循环91

6.4编写嵌套循环93

6.4.1使用嵌套循环遍历多维数组94

6.4.2使用嵌套循环计算斐波纳契数列95

6.5总结96

6.6问与答96

6.7作业97

6.7.1测验97

6.7.2练习97

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

7.1为何需要函数99

7.1.1函数原型是什么100

7.1.2函数定义是什么101

7.1.3函数调用和实参是什么101

7.1.4编写接受多个参数的函数101

7.1.5编写没有参数和返回值的函数103

7.1.6带默认值的函数参数103

7.1.7递归函数—调用自己的函数105

7.1.8包含多条return语句的函数106

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

7.2.1函数重载107

7.2.2将数组传递给函数109

7.2.3按引用传递参数110

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

7.3.1内联函数112

7.3.2自动推断返回类型113

7.3.3lambda函数114

7.4总结115

7.5问与答116

7.6作业116

7.6.1测验116

7.6.2练习116

第8章阐述指针和引用118

8.1什么是指针118

8.1.1声明指针119

8.1.2使用引用运算符(&)获取变量的地址119

8.1.3使用指针存储地址120

8.1.4使用解除引用运算符(*)访问指向的数据122

8.1.5将sizeof()用于指针的结果124

8.2动态内存分配125

8.2.1使用new和delete动态地分配和释放内存125

8.2.2将递增和递减运算符(++和)用于指针的结果127

8.2.3将关键字const用于指针129

8.2.4将指针传递给函数130

8.2.5数组和指针的类似之处131

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

8.3.1内存泄露133

8.3.2指针指向无效的内存单元133

8.3.3悬浮指针(也叫迷途或失控指针)134

8.3.4检查使用new发出的分配请求是否得到满足135

8.4指针编程**佳实践137

8.5引用是什么137

8.5.1是什么让引用很有用138

8.5.2将关键字const用于引用139

8.5.3按引用向函数传递参数140

8.6总结140

8.7问与答141

8.8作业142

8.8.1测验142

8.8.2练习142

第9章类和对象144

9.1类和对象144

9.1.1声明类145

9.1.2作为类实例的对象145

9.1.3使用句点运算符访问成员146

9.1.4使用指针运算符(->)访问成员146

9.2关键字public和private147

9.3构造函数150

9.3.1声明和实现构造函数150

9.3.2何时及如何使用构造函数151

9.3.3重载构造函数152

9.3.4没有默认构造函数的类154

9.3.5带默认值的构造函数参数155

9.3.6包含初始化列表的构造函数156

9.4析构函数157

9.4.1声明和实现析构函数157

9.4.2何时及如何使用析构函数158

9.5复制构造函数160

9.5.1浅复制及其存在的问题160

9.5.2使用复制构造函数确保深复制162

9.5.3有助于改善性能的移动构造函数166

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

9.6.1不允许复制的类167

9.6.2只能有一个实例的单例类167

9.6.3禁止在栈中实例化的类169

9.6.4使用构造函数进行类型转换171

9.7this指针172

9.8将sizeof()用于类173

9.9结构不同于类的地方175

9.10声明友元176

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

9.11.1声明共用体178

9.11.2在什么情况下使用共用体178

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

9.13总结183

9.14问与答183

9.15作业184

9.15.1测验184

9.15.2练习184

第10章实现继承185

10.1继承基础185

10.1.1继承和派生186

10.1.2C++派生语法186

10.1.3访问限定符protected188

10.1.4基类初始化—向基类传递参数190

10.1.5在派生类中覆盖基类的方法192

10.1.6调用基类中被覆盖的方法194

10.1.7在派生类中调用基类的方法194

10.1.8在派生类中隐藏基类的方法196

10.1.9构造顺序198

10.1.10析构顺序198

10.2私有继承200

10.3保护继承202

10.4切除问题205

10.5多继承205

10.6使用final禁止继承207

10.7总结208

10.8问与答208

10.9作业208

10.9.1测验208

10.9.2练习209

第11章多态210

11.1多态基础210

11.1.1为何需要多态行为210

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

11.1.3为何需要虚构造函数213

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

11.1.5抽象基类和纯虚函数220

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

11.3表明覆盖意图的限定符override225

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

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

11.6总结230

11.7问与答230

11.8作业231

11.8.1测验231

11.8.2练习231

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

12.1C++运算符232

12.2单目运算符233

12.2.1单目运算符的类型233

12.2.2单目递增与单目递减运算符234

12.2.3转换运算符236

12.2.4解除引用运算符(*)和成员选择运算符(->)238

12.3双目运算符239

12.3.1双目运算符的类型240

12.3.2双目加法与双目减法运算符240

12.3.3实现运算符+=与=242

12.3.4重载等于运算符(==)和不等运算符(!=)243

12.3.5重载运算符<、>、<=和>=245

12.3.6重载复制赋值运算符(=)248

12.3.7下标运算符250

12.4函数运算符operator()253

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

12.5.1不必要的复制带来的问题254

12.5.2声明移动构造函数和移动赋值运算符254

12.6用户定义的字面量258

12.7不能重载的运算符260

12.8总结261

12.9问与答261

12.10作业261

12.10.1测验261

12.10.2练习261

第13章类型转换运算符262

13.1为何需要类型转换262

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

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

13.3.1使用static_cast263

13.3.2使用dynamic_cast和运行阶段类型识别264

13.3.3使用reinterpret_cast267

13.3.4使用const_cast267

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

13.5总结269

13.6问与答269

13.7作业270

13.7.1测验270

13.7.2练习270

第14章宏和模板简介271

14.1预处理器与编译器271

14.2使用#define定义常量271

14.3使用#define编写宏函数274

14.3.1为什么要使用括号276

14.3.2使用assert宏验证表达式276

14.3.3使用宏函数的优点和缺点277

14.4模板简介278

14.4.1模板声明语法278

14.4.2各种类型的模板声明279

14.4.3模板函数279

14.4.4模板与类型安全281

14.4.5模板类281

14.4.6声明包含多个参数的模板282

14.4.7声明包含默认参数的模板283

14.4.8一个模板示例283

14.4.9模板的实例化和具体化284

14.4.10模板类和静态成员286

14.4.11参数数量可变的模板287

14.4.12使用static_assert执行编译阶段检查290

14.4.13在实际C++编程中使用模板290

14.5总结291

14.6问与答291

14.7作业291

14.7.1测验291

14.7.2练习292

第15章标准模板库简介293

15.1STL容器293

15.1.1顺序容器293

15.1.2关联容器294

15.1.3容器适配器294

15.2STL迭代器295

15.3STL算法295

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

15.5选择正确的容器297

15.6STL字符串类298

15.7总结298

15.8问与答299

15.9作业299

第16章STLstring类300

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

16.2使用STLstring类301

16.2.1实例化和复制STLstring301

16.2.2访问std::string的字符内容303

16.2.3拼接字符串305

16.2.4在string中查找字符或子字符串306

16.2.5截短STLstring307

16.2.6字符串反转309

16.2.7字符串的大小写转换310

16.3基于模板的STLstring实现311

16.4总结312

16.5问与答312

16.6作业313

16.6.1测验313

16.6.2练习313

第17章STL动态数组类314

17.1std::vector的特点314

17.2典型的vector操作314

17.2.1实例化vector314

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

17.2.3列表初始化317

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

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

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

17.2.7删除vector中的元素321

17.3理解大小和容量322

17.4STLdeque类324

17.5总结326

17.6问与答326

17.7作业327

17.7.1测验327

17.7.2练习327

第18章STLlist和forward_list328

18.1std::list的特点328

18.2基本的list操作328

18.2.1实例化std::list对象328

18.2.2在list开头或末尾插入元素330

18.2.3在list中间插入元素331

18.2.4删除list中的元素333

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

18.3.1使用list::reverse()反转元素的排列顺序334

18.3.2对元素进行排序335

18.3.3对包含对象的list进行排序以及删除其中的元素337

18.3.4C++11引入的std::forward_list340

18.4总结341

18.5问与答342

18.6作业342

18.6.1测验342

18.6.2练习342

第19章STL集合类343

19.1简介343

19.2STLset和multiset的基本操作344

19.2.1实例化std::set对象344

19.2.2在set或multiset中插入元素345

19.2.3在STLset或multiset中查找元素347

19.2.4删除STLset或multiset中的元素348

19.3使用STLset和multiset的优缺点352

19.4总结354

19.5问与答355

19.6作业355

19.6.1测验355

19.6.2练习355

第20章STL映射类356

20.1STL映射类简介356

20.2STLmap和multimap的基本操作357

20.2.1实例化std::map和std::multimap357

20.2.2在STLmap或multimap中插入元素358

20.2.3在STLmap或multimap中查找元素361

20.2.4在STLmultimap中查找元素363

20.2.5删除STLmap或multimap中的元素363

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

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

20.4.1散列表的工作原理368

20.4.2使用unordered_map和unordered_multimap368

20.5总结372

20.6问与答372

20.7作业372

20.7.1测验373

20.7.2练习373

第21章理解函数对象374

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

21.2函数对象的典型用途374

21.2.1一元函数374

21.2.2一元谓词378

21.2.3二元函数380

21.2.4二元谓词381

21.3总结383

21.4问与答384

21.5作业384

21.5.1测验38

—  没有更多了  —

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

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