C++ Primer Plus(第6版)中文版pdf下载

C++ Primer Plus(第6版)中文版百度网盘pdf下载

作者:
简介:C++ Primer Plus(第6版)中文版
出版社:
出版时间:2020-07
pdf下载价格:9.00¥


预览


内容介绍

作  者:(美)史蒂芬·普拉达 著 张海龙,袁国忠 译
定  价:118
出 版 社:人民邮电出版社
出版日期:2020年07月01日
页  数:678
装  帧:平装
ISBN:9787115521644
1.经典C++教程十年新版再现,经久不衰的C++经典教程,中文版累计销量超500000册; 2020版赠送价值99元e读版电子书及在线实验环境,附赠大尺寸(60CM*80CM)全书学习思维导图。 2.全新升级,针对C++11标准全面更新; 3.专为零基础读者撰写,近百万程序员的C++编程启蒙教程; 4.示意图解释概念,方面理解; 5.随时指出潜存的问题,避免走弯路; 6.随处可见的警告、注意、提示随时给读者以警醒; 7.庖丁解牛式分析程序,确保知其然更知其所以然; 8.精心设计复习题、编程练习,等
章预备知识1
1.1C++简介1
1.2C++简史2
1.2.1C语言2
1.2.2C语言编程原理2
1.2.3面向对象编程3
1.2.4C++和泛型编程3
1.2.5C++的起源4
1.3可移植性和标准5
1.3.1C++的发展5
1.3.2本书遵循的C++标准6
1.4程序创建的技巧6
1.4.1创建源代码文件6
1.4.2编译和链接7
1.5总结10
第2章开始学习C++11
2.1进入C++11
2.1.1main()函数12
2.1.2C++注释14
2.1.3C++预处理器和iostream文件14
2.1.4头文件名15
2.1.5名称空间15
2.1.6使用cout进行C++输出16
2.1.7C++源代码的格式化17
2.2C++语句18
2.2.1声明语句和变量19
2.2.2赋值语句20
2.2.3cout的新花样20
2.3其他C++语句21
2.3.1使用cin21
2.3.2使用cout进行拼接21
2.3.3类简介22
2.4函数23
2.4.1使用有返回值的函数23
2.4.2函数变体25
2.4.3用户定义的函数26
2.4.4用户定义的有返回值的函数28
2.4.5在多函数程序中使用using编译指令29
2.5总结30
2.6复习题30
2.7编程练习30
第3章处理数据32
3.1简单变量32
3.1.1变量名33
3.1.2整型34
3.1.3整型short、int、long和longlong34
3.1.4无符号类型37
3.1.5选择整型类型38
3.1.6整型字面值39
3.1.7C++如何确定常量的类型40
3.1.8char类型:字符和小整数41
3.1.9bool类型46
3.2const限定符46
3.3浮点数47
3.3.1书写浮点数47
3.3.2浮点类型48
3.3.3浮点常量49
3.3.4浮点数的优缺点49
3.4C++算术运算符50
3.4.1运算符优先级和结合性51
3.4.2除法分支51
3.4.3求模运算符52
3.4.4类型转换53
3.4.5C++11中的auto声明56
3.5总结57
3.6复习题57
3.7编程练习58
第4章复合类型59
4.1数组59
4.1.1程序说明61
4.1.2数组的初始化规则61
4.1.3C++11数组初始化方法62
4.2字符串62
4.2.1拼接字符串常量63
4.2.2在数组中使用字符串63
4.2.3字符串输入
4.2.4每次读取一行字符串输入65
4.2.5混合输入字符串和数字67
4.3string类简介68
4.3.1C++11字符串初始化69
4.3.2赋值、拼接和附加69
4.3.3string类的其他操作70
4.3.4string类I/O71
4.3.5其他形式的字符串字面值72
4.4结构简介73
4.4.1在程序中使用结构74
4.4.2C++11结构初始化75
4.4.3结构可以将string类作为成员吗75
4.4.4其他结构属性76
4.4.5结构数组77
4.4.6结构中的位字段78
4.5共用体78
4.6枚举79
4.6.1设置枚举量的值80
4.6.2枚举的取值范围80
4.7指针和自由存储空间80
4.7.1声明和初始化指针82
4.7.2指针的危险84
4.7.3指针和数字84
4.7.4使用new来分配内存84
4.7.5使用delete释放内存86
4.7.6使用new来创建动态数组86
4.8指针、数组和指针算术88
4.8.1程序说明89
4.8.2指针小结90
4.8.3指针和字符串92
4.8.4使用new创建动态结构94
4.8.5自动存储、静态存储和动态存储96
4.9类型组合97
4.10数组的替代品99
4.10.1模板类vector99
4.10.2模板类array(C++11)99
4.10.3比较数组、vector对象和array对象99
4.11总结101
4.12复习题101
4.13编程练习102
第5章循环和关系表达式104
5.1for循环104
5.1.1for循环的组成部分105
5.1.2回到for循环109
5.1.3修改步长110
5.1.4使用for循环访问字符串110
5.1.5递增运算符(++)和递减运算符()111
5.1.6副作用和顺序点112
5.1.7前缀格式和后缀格式112
5.1.8递增/递减运算符和指针112
5.1.9组合赋值运算符113
5.1.10复合语句(语句块)113
5.1.11其他语法技巧——逗号运算符115
5.1.12关系表达式116
5.1.13赋值、比较和可能犯的错误117
5.1.14C-风格字符串的比较118
5.1.15比较string类字符串120
5.2while循环120
5.2.1for与while121
5.2.2等待一段时间:编写延时循环123
5.3dowhile循环124
5.4基于范围的for循环(C++11)125
5.5循环和文本输入125
5.5.1使用原始的cin进行输入126
5.5.2使用cin.get(char)进行补救126
5.5.3使用哪一个cin.get()127
5.5.4文件尾条件128
5.5.5另一个cin.get()版本129
5.6嵌套循环和二维数组131
5.6.1初始化二维数组132
5.6.2使用二维数组133
5.7总结134
5.8复习题134
5.9编程练习135
第6章分支语句和逻辑运算符137
6.1if语句137
6.1.1ifelse语句138
6.1.2格式化ifelse语句139
6.1.3ifelseifelse结构140
6.2逻辑表达式141
6.2.1逻辑OR运算符:||141
6.2.2逻辑AND运算符:&&142
6.2.3用&&来设置取值范围144
6.2.4逻辑NOT运算符:!145
6.2.5逻辑运算符细节146
6.2.6其他表示方式146
6.3字符函数库cctype147
6.4:运算符148
6.5switch语句149
6.5.1将枚举量用作标签151
6.5.2switch和ifelse152
6.6break和continue语句153
6.7读取数字的循环154
6.8简单文件输入/输出157
6.8.1文本I/O和文本文件157
6.8.2写入到文本文件中158
6.8.3读取文本文件160
6.9总结163
6.10复习题163
6.11编程练习165
第7章函数——C++的编程模块167
7.1复习函数的基本知识167
7.1.1定义函数168
7.1.2函数原型和函数调用169
7.2函数参数和按值传递171
7.2.1多个参数172
7.2.2另一个接受参数的函数174
7.3函数和数组175
7.3.1函数如何使用指针来处理数组176
7.3.2将数组作为参数意味着什么176
7.3.3更多数组函数示例178
7.3.4使用数组区间的函数181
7.3.5指针和const182
7.4函数和二维数组185
7.5函数和C-风格字符串186
7.5.1将C-风格字符串作为参数的函数186
7.5.2返回C-风格字符串的函数187
7.6函数和结构188
7.6.1传递和返回结构188
7.6.2另一个处理结构的函数示例189
7.6.3传递结构的地址192
7.7函数和string对象194
7.8函数与array对象195
7.9递归196
7.9.1包含一个递归调用的递归196
7.9.2包含多个递归调用的递归197
7.10函数指针198
7.10.1函数指针的基础知识199
7.10.2函数指针示例200
7.10.3深入探讨函数指针201
7.10.4使用typedef进行简化204
7.11总结204
7.12复习题205
7.13编程练习206
第8章函数探幽208
8.1C++内联函数208
8.2引用变量210
8.2.1创建引用变量210
8.2.2将引用用作函数参数212
8.2.3引用的属性和特别之处214
8.2.4将引用用于结构216
8.2.5将引用用于类对象220
8.2.6对象、继承和引用222
8.2.7何时使用引用参数224
8.3默认参数225
8.4函数重载227
8.4.1重载示例228
8.4.2何时使用函数重载230
8.5函数模板230
8.5.1重载的模板232
8.5.2模板的局限性233
8.5.3显式具体化234
8.5.4实例化和具体化236
8.5.5编译器选择使用哪个函数版本237
8.5.6模板函数的发展241
8.6总结243
8.7复习题243
8.8编程练习244
第9章内存模型和名称空间246
9.1单独编译246
9.2存储持续性、作用域和链接性250
9.2.1作用域和链接250
9.2.2自动存储持续性250
9.2.3静态持续变量253
9.2.4静态持续性、外部链接性254
9.2.5静态持续性、内部链接性257
9.2.6静态存储持续性、无链接性258
9.2.7说明符和限定符260
9.2.8函数和链接性261
9.2.9语言链接性262
9.2.10存储方案和动态分配262
9.3名称空间266
9.3.1传统的C++名称空间266
9.3.2新的名称空间特性267
9.3.3名称空间示例271
9.3.4名称空间及其前途274
9.4总结274
9.5复习题275
9.6编程练习276
0章对象和类278
10.1过程性编程和面向对象编程278
10.2抽象和类279
10.2.1类型是什么279
10.2.2C++中的类280
10.2.3实现类成员函数283
10.2.4使用类285
10.2.5修改实现286
10.2.6小结287
10.3类的构造函数和析构函数288
10.3.1声明和定义构造函数288
10.3.2使用构造函数289
10.3.3默认构造函数290
10.3.4析构函数290
10.3.5改进Stock类291
10.3.6构造函数和析构函数小结296
10.4this指针296
10.5对象数组300
10.6类作用域302
10.6.1作用域为类的常量302
10.6.2作用域内枚举(C++11)303
10.7抽象数据类型304
10.8总结307
10.9复习题307
10.10编程练习308
1章使用类310
11.1运算符重载310
11.2计算时间:一个运算符重载示例311
11.2.1添加加法运算符313
11.2.2重载315
11.2.3其他重载运算符316
11.3友元318
11.3.1创建友元319
11.3.2常用的友元:重载<<运算符320
11.4重载运算符:作为成员函数还是非成员函数324
11.5再谈重载:一个矢量类324
11.5.1使用状态成员329
11.5.2为Vector类重载算术运算符331
11.5.3对实现的说明332
11.5.4使用Vector类来模拟随机漫步332
11.6类的自动转换和强制类型转换334
11.6.1转换函数338
11.6.2转换函数和友元函数341
11.7总结343
11.8复习题344
11.9编程练习344
2章类和动态内存分配346
12.1动态内存和类346
12.1.1复习示例和静态类成员346
12.1.2特殊成员函数352
12.1.3回到Stringbad:复制构造函数的哪里出了问题354
12.1.4Stringbad的其他问题:赋值运算符356
12.2改进后的新String类357
12.2.1修订后的默认构造函数357
12.2.2比较成员函数358
12.2.3使用中括号表示法访问字符359
12.2.4静态类成员函数360
12.2.5进一步重载赋值运算符360
12.3在构造函数中使用new时应注意的事项3
12.3.1应该和不应该365
12.3.2包含类成员的类的逐成员复制365
12.4有关返回对象的说明366
12.4.1返回指向const对象的引用366
12.4.2返回指向非const对象的引用366
12.4.3返回对象367
12.4.4返回const对象367
12.5使用指向对象的指针368
12.5.1再谈new和delete369
12.5.2指针和对象小结370
12.5.3再谈定位new运算符371
12.6复习各种技术374
12.6.1重载<<运算符374
12.6.2转换函数375
12.6.3其构造函数使用new的类375
12.7队列模拟375
12.7.1队列类376
12.7.2Customer类382
12.7.3ATM模拟384
12.8总结387
12.9复习题388
12.10编程练习389
3章类继承392
13.1一个简单的基类393
13.1.1派生一个类394
13.1.2构造函数:访问权限的考虑395
13.1.3使用派生类397
13.1.4派生类和基类之间的特殊关系398
13.2继承:is-a关系400
13.3多态公有继承400
13.4静态联编和动态联编409
13.4.1指针和引用类型的兼容性409
13.4.2虚成员函数和动态联编411
13.4.3有关虚函数注意事项412
13.5访问控制:protected414
13.6抽象基类415
13.6.1应用ABC概念416
13.6.2ABC理念421
13.7继承和动态内存分配421
13.7.1种情况:派生类不使用new421
13.7.2第二种情况:派生类使用new422
13.7.3使用动态内存分配和友元的继承示例423
13.8类设计回顾427
13.8.1编译器生成的成员函数427
13.8.2其他的类方法428
13.8.3公有继承的考虑因素429
13.8.4类函数小结432
13.9总结433
13.10复习题433
13.11编程练习434
4章C++中的代码重用436
14.1包含对象成员的类436
14.1.1valarray类简介437
14.1.2Student类的设计437
14.1.3Student类示例438
14.2私有继承443
14.2.1Student类示例(新版本)443
14.2.2使用包含还是私有继承447
14.2.3保护继承448
14.2.4使用using重新定义访问权限448
14.3多重继承449
14.3.1有多少Worker452
14.3.2哪个方法455
14.3.3MI小结461
14.4类模板462
14.4.1定义类模板462
14.4.2使用模板类4
14.4.3深入探讨模板类465
14.4.4数组模板示例和非类型参数469
14.4.5模板多功能性470
14.4.6模板的具体化473
14.4.7成员模板474
14.4.8将模板用作参数476
14.4.9模板类和友元477
14.4.10模板别名(C++11)482
14.5总结482
14.6复习题483
14.7编程练习484
5章友元、异常和其他488
15.1友元488
15.1.1友元类488
15.1.2友元成员函数492
15.1.3其他友元关系494
15.1.4共同的友元495
15.2嵌套类495
15.2.1嵌套类和访问权限496
15.2.2模板中的嵌套497
15.3异常499
15.3.1调用abort()500
15.3.2返回错误码500
15.3.3异常机制501
15.3.4将对象用作异常类型504
15.3.5异常规范和C++11506
15.3.6栈解退506
15.3.7其他异常特性510
15.3.8exception类511
15.3.9异常、类和继承514
15.3.10异常何时会迷失方向517
15.3.11有关异常的注意事项519
15.4RTTI520
15.4.1RTTI的用途520
15.4.2RTTI的工作原理521
15.5类型转换运算符526
15.6总结528
15.7复习题528
15.8编程练习529
6章string类和标准模板库530
16.1string类530
16.1.1构造字符串530
16.1.2string类输入533
16.1.3使用字符串535
16.1.4string还提供了哪些功能538
16.1.5字符串种类539
16.2智能指针模板类539
16.2.1使用智能指针540
16.2.2有关智能指针的注意事项542
16.2.3unique_ptr为何优于auto_ptr543
16.2.4选择智能指针545
16.3标准模板库545
16.3.1模板类vector546
16.3.2可对矢量执行的操作547
16.3.3对矢量可执行的其他操作550
16.3.4基于范围的for循环(C++11)553
16.4泛型编程553
16.4.1为何使用迭代器553
16.4.2迭代器类型556
16.4.3迭代器层次结构557
16.4.4概念、改进和模型558
16.4.5容器种类562
16.4.6关联容器568
16.4.7无序关联容器(C++11)572
16.5函数对象572
16.5.1函数符概念573
16.5.2预定义的函数符575
16.5.3自适应函数符和函数适配器576
16.6算法577
16.6.1算法组578
16.6.2算法的通用特征578
16.6.3STL和string类579
16.6.4函数和容器方法579
16.6.5使用STL581
16.7其他库583
16.7.1vector、valarray和array583
16.7.2模板initializer_list(C++11)586
16.7.3使用initializer_list587
16.8总结588
16.9复习题589
16.10编程练习590
7章输入、输出和文件592
17.1C++输入和输出概述592
17.1.1流和缓冲区593
17.1.2流、缓冲区和iostream文件594
17.1.3重定向596
17.2使用cout进行输出597
17.2.1重载的<<运算符597
17.2.2其他ostream方法598
17.2.3刷新输出缓冲区600
17.2.4用cout进行格式化601
17.3使用cin进行输入611
17.3.1cin>>如何检查输入612
17.3.2流状态613
17.3.3其他istream类方法616
17.3.4其他istream方法620
17.4文件输入和输出622
17.4.1简单的文件I/O623
17.4.2流状态检查和is_open()625
17.4.3打开多个文件625
17.4.4命令行处理技术626
17.4.5文件模式627
17.4.6随机存取633
17.5内核格式化638
17.6总结0
17.7复习题1
17.8编程练习2
8章探讨C++新标准4
18.1复习前面介绍过的C++11功能4
18.1.1新类型4
18.1.2统一的初始化4
18.1.3声明5
18.1.4智能指针6
18.1.5异常规范方面的修改7
18.1.6作用域内枚举7
18.1.7对类的修改7
18.1.8模板和STL方面的修改8
18.1.9右值引用9
18.2移动语义和右值引用650
18.2.1为何需要移动语义650
18.2.2一个移动示例651
18.2.3移动构造函数解析654
18.2.4赋值655
18.2.5强制移动655
18.3新的类功能658
18.3.1特殊的成员函数658
18.3.2默认的方法和禁用的方法659
18.3.3委托构造函数660
18.3.4继承构造函数660
18.3.5管理虚方法:override和final661
18.4Lambda函数662
18.4.1比较函数指针、函数符和Lambda函数662
18.4.2为何使用lambda6
18.5包装器666
18.5.1包装器function及模板的低效性666
18.5.2修复问题667
18.5.3其他方式669
18.6可变参数模板669
18.6.1模板和函数参数包669
18.6.2展开参数包670
18.6.3在可变参数模板函数中使用递归670
18.7C++11新增的其他功能672
18.7.1并行编程672
18.7.2新增的库672
18.7.3低级编程673
18.7.4杂项673
18.8语言变化674
18.8.1Boost项目674
18.8.2TR1674
18.8.3使用Boost674
18.9接下来的任务675
18.10总结675
18.11复习题676
18.12编程练习678
C++是在C语言基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言,是C语言的超集。本书是根据2003年的ISO/ANSIC++标准编写的,通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术,并专辟一章介绍了C++11新增的功能。全书分18章,分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑运算符、函数重载和函数模板、内存模型和名称空间、类的设计和使用、多态、虚函数、动态内存分配、继承、代码重用、友元、异常处理技术、string类和标准模板库、输入/输出、C++11新增功能等内容。本书针对C++初学者,从C语言基础知识开始介绍,然后在此基础上详细阐述C++新增的特性,因此不要求读者有C语言方面的背景知识。本书可作为高等院校教授C++课程的教材,也可供初学者自学C++时使用。
(美)史蒂芬·普拉达 著 张海龙,袁国忠 译
Stephen Prata曾在加利福尼亚的马林学院(肯特菲尔德)教授天文学、物理学和程序设计课程,现已退休。他在加州理工学院获得学士学位,在加州大学伯克利分校获得博士学位。他早接触程序设计,是为了利用计算机给星团建模。Stephen撰写和与他人合著了十几本书籍,其中包括C++ Primer Plus和C Primer Plus。