图书介绍
从新手到高手C++全方位学习【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- 范磊编著 著
- 出版社: 北京:科学出版社
- ISBN:9787030247063
- 出版时间:2009
- 标注页数:840页
- 文件大小:190MB
- 文件页数:861页
- 主题词:C语言-程序设计
PDF下载
下载说明
从新手到高手C++全方位学习PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 初识C++1
1.1 C++简介1
1.2 C++与C的区别2
1.3 学习C++之前需要先学C吗3
1.4 C++与其他语言的区别3
1.5 C++的版本以及安装问题3
第2章 做一个最简短的C++程序4
2.1 简单的屏幕输出小程序4
2.2 输出语句的使用5
2.3 std::介绍6
2.4 iostream与iostream.h的区别7
2.5 重名问题8
2.6 注释9
第3章 初步了解函数11
3.1 一个简单的函数11
3.2 函数的传参12
3.3 函数的返回值、参数与变量13
3.4 函数的声明与定义14
3.5 局部变量16
3.6 全局变量17
第4章 C++数据类型19
4.1 变量的定义19
4.2 将变量及数据存储在内存中20
4.3 布尔型变量21
4.4 字符型变量21
4.5 wchar_t双字节型变量25
4.6 整型概述26
4.7 整型变量的定义28
4.8 浮点型变量29
4.9 常量30
4.10 枚举型常量30
第5章 if语句与逻辑运算符32
5.1 语句的定义32
5.2 块的定义32
5.3 表达式的定义33
5.4 运算符的定义34
5.4.1 赋值运算符的定义34
5.4.2 数学运算符的定义34
5.4.3 赋值运算符与数学运算符的联合35
5.5 自加与自减35
5.5.1 前置36
5.5.2 后置36
5.6 表达式的优先级37
5.7 关系运算符37
5.8 if语句37
5.8.1 else语句39
5.8.2 else if语句40
5.8.3 if语句的嵌套41
5.9 逻辑运算符及其使用44
5.9.1 逻辑“与”44
5.9.2 逻辑“或”45
5.9.3 逻辑“非”46
5.9.4 逻辑运算符的优先级46
5.9.5 运算式的真假关系48
5.10 三目运算符50
5.10.1 三目运算符的优先问题50
5.10.2 三目运算符的使用问题51
5.10.3 三目运算符的型别问题51
5.10.4 三目运算符在字符型变量中的使用52
5.11 复杂嵌套的if语句52
第6章 面向对象54
6.1 面向对象程序语言的主要特征54
6.2 类、对象和成员55
6.3 类、对象和成员的使用方法及区别56
6.3.1 声明一个类56
6.3.2 命名习惯57
6.3.3 定义一个对象57
6.3.4 类与对象的区别57
6.3.5 对象与成员的关系57
6.3.6 不要给类赋值58
6.3.7 对象只能调用类中存在的成员58
6.4 公有59
6.5 私有60
6.6 成员函数的声明和定义63
6.7 为什么将成员函数的声明和定义分开64
6.7.1 普通内联函数65
6.7.2 成员内联函数66
6.8 将类声明和定义部分保存在头文件中67
6.9 const成员函数68
6.10 构造函数69
6.11 默认构造函数70
6.12 析构函数71
6.13 析构对象数组72
第7章 循环语句73
7.1 循环语句的前身——goto语句73
7.2 慎用goto语句74
7.3 while语句74
7.3.1 带运算符的while语句75
7.3.2 以字符为条件的while语句75
7.3.3 限定while循环的次数76
7.3.4 continue语句77
7.3.5 break语句78
7.3.6 永不休止的while循环79
7.4 do...while循环80
7.5 for循环81
7.5.1 灵活的for循环83
7.5.2 条件为空的for循环83
7.5.3 执行为空的for循环84
7.5.4 嵌套的for循环85
7.6 switch语句86
7.6.1 switch语句常见错误88
7.6.2 switch的菜单功能89
7.7 总结90
第8章 指针91
8.1 什么是地址91
8.2 用指针来保存地址92
8.2.1 空指针92
8.2.2 指针与变量类型93
8.2.3 用指针来访问值93
8.2.4 指针地址、指针保存的地址和该地址的值94
8.2.5 指针对数值的操作95
8.2.6 更换指针保存的地址96
8.3 为什么使用指针97
8.3.1 栈和堆98
8.3.2 用指针创建堆中空间101
8.3.3 用指针删除堆中空间102
8.4 动态内存103
8.4.1 内存泄漏103
8.4.2 在堆中创建对象104
8.4.3 在堆中删除对象105
8.4.4 访问堆中的数据成员105
8.4.5 在构造函数中开辟内存空间106
8.4.6 对象在栈与堆中的不同107
8.5 this指针109
8.6 指针的常见错误110
8.7 指针运算112
8.7.1 指针的加减运算112
8.7.2 指针的赋值运算113
8.7.3 指针的相减运算114
8.7.4 指针的比较运算114
8.8 指针115
8.8.1 常量指针115
8.8.2 指向常量的指针116
8.8.3 指向常量的常指针116
8.9 总结117
第9章 引用118
9.1 什么是引用118
9.1.1 引用的地址119
9.1.2 引用就是别名常量119
9.1.3 引用对象120
9.1.4 空引用121
9.2 函数的参数传递121
9.2.1 通过值来传递函数参数121
9.2.2 通过指针来传递函数参数122
9.2.3 通过引用来传递函数参数123
9.2.4 让函数返回多个值124
9.3 传递对象127
9.3.1 用值来传递对象127
9.3.2 使用指针来传递对象129
9.3.3 使用const指针来传递对象130
9.3.4 使用引用来传递对象131
9.3.5 到底是使用引用还是指针133
9.3.6 引用和指针可以一块用134
9.4 引用应注意的问题135
9.4.1 引用容易犯的错误135
9.4.2 引用一个按值返回的堆中对象138
9.4.3 引用一个按别名返回的堆中对象140
9.4.4 在哪里创建,就在哪里释放141
9.5 总结142
第10章 深入函数144
10.1 函数重载144
10.1.1 普通函数的重载144
10.1.2 成员函数的重载145
10.2 函数的默认参数146
10.3 重载构造函数148
10.3.1 成员变量的初始化148
10.3.2 成员变量的初始化与构造函数149
10.3.3 复制构造函数152
10.3.4 构造函数和new运算符153
10.3.5 再谈默认构造函数155
10.4 析构函数和delete运算符156
10.4.1 默认析构函数156
10.4.2 调用构造函数进行类型转换157
10.5 浅层复制构造函数158
10.6 深层复制构造函数160
第11章 运算符重载162
11.1 运算符重载162
11.2 在成员函数中实现自加163
11.3 重载前置自加运算符163
11.4 创建临时对象165
11.5 创建无名临时对象166
11.6 取消创建临时对象167
11.7 重载后置自加运算符168
11.8 重载加法运算函数operator+170
11.9 重载赋值运算函数operator=172
11.10 转换类型运算符178
11.10.1 温习调用构造函数实现的类型转换178
11.10.2 通过构造函数将变量转换为一个对象的成员变量179
11.10.3 通过operator关键字进行转换181
11.11 什么可以被重载,什么不可以182
第12章 继承183
12.1 什么是继承和派生183
12.1.1 复杂的继承和派生183
12.1.2 继承和派生如何在C++中实现184
12.1.3 继承的种类及语法185
12.1.4 单一继承185
12.2 公有型、保护型和私有型187
12.3 访问权限188
12.4 多重继承192
12.5 继承的构造与析构194
12.6 向基类构造函数传递参数197
12.7 继承和重载的两义性问题200
12.7.1 多重继承容易产生两义性200
12.7.2 两义性在重载时的一些问题202
12.7.3 两义性的归属问题203
12.7.4 减少两义性产生的混淆问题205
12.7.5 虚基类不会产生两义性206
12.8 总结207
第13章 虚函数209
13.1 指向对象的指针209
13.2 虚函数210
13.3 拳击游戏212
13.4 继承是否可以实现多态性214
13.5 在编译时的静态联编216
13.6 在运行时的静态联编216
13.7 在编译时的动态联编217
13.8 在运行时的动态联编218
13.9 调用虚函数219
13.9.1 在虚函数中调用成员函数219
13.9.2 三种调用虚函数的方式比较221
13.10 被继承的虚函数仍然是虚函数223
13.11 系统是如何调用虚函数的224
13.12 在虚函数中使用成员名限定224
13.13 虚析构函数225
第14章 数组228
14.1 数组的基本用法228
14.1.1 什么是数组228
14.1.2 数组元素228
14.1.3 数组下标越界229
14.1.4 倒序输出230
14.1.5 将数组的下标定义为常量230
14.1.6 手动操作数组元素231
14.1.7 数组的初始化232
14.2 数组的用途233
14.2.1 求平均考试成绩233
14.2.2 兔子繁殖问题235
14.2.3 数字排序问题237
14.3 数组在内存中的分布239
14.4 输出数组名241
14.5 数组名与函数241
14.6 传递与接收242
14.7 数组与函数243
14.7.1 函数传参实例一——求数组所有元素的和244
14.7.2 函数传参实例二——用递增法查找数据245
14.7.3 函数传参实例三——用二分法查找数据246
14.7.4 函数传参实例四——判断数组是否按照顺序排列247
14.7.5 函数传参实例五——判断数组排列方式后执行不同的函数247
14.8 数组在对象中的传参249
14.9 数组对象250
14.10 在数组对象中初始化成员变量251
14.11 指针数组252
14.12 枚举常量与数组257
14.13 多维数组258
14.14 多维数组的初始化259
14.15 字符数组260
14.16 重载数组下标操作符269
第15章 链表272
15.1 声明链表结构272
15.2 简单的图书链表273
15.2.1 图书链表273
15.2.2 类的链表274
15.3 动态链表274
15.3.1 动态链表的建立275
15.3.2 解决输入字符造成死循环的问题277
15.3.3 动态链表的显示280
15.3.4 动态链表的删除280
15.3.5 动态链表的插入282
15.3.6 链表统计283
15.3.7 使用链表284
15.4 完整的动态链表清单286
15.5 链表使用案例——走迷宫290
15.5.1 创建Windows应用程序项目291
15.5.2 创建窗口291
15.5.3 加载图片293
15.5.4 句柄是什么294
15.5.5 显示图片295
15.5.6 动画299
15.5.7 键盘控制人物移动303
15.5.8 迷宫墙壁307
15.5.9 走迷宫313
15.5.10 用链表记录行走路线316
第16章 多态性322
16.1 为什么要使用多重继承322
16.2 在派生类中增加函数324
16.3 使用多重继承326
16.4 多重继承中初始化构造函数的参数328
16.5 多个子基类共享一个父基类330
16.6 虚基类333
16.7 慎用多重继承336
16.8 空的虚函数336
16.9 抽象类和纯虚函数338
16.10 纯虚函数340
16.11 复杂的抽象结构342
第17章 类的特殊成员346
17.1 静态成员变量346
17.2 私有静态成员变量349
17.3 静态成员函数349
17.4 静态成员的使用351
17.5 函数指针353
17.6 函数指针数组357
17.7 函数指针也可以作为函数的参数359
17.8 使用typedef简化函数指针的声明及定义361
17.9 类的函数指针363
17.10 成员函数指针数组365
第18章 字符串368
18.1 char型字符串368
18.2 string型字符串371
18.2.1 string型字符串的赋值376
18.2.2 string型字符串的合并378
18.2.3 string型字符串的部分合并380
18.2.4 string型字符串的替换381
18.2.5 string型字符串的复制384
18.2.6 string型字符串的插入385
18.2.7 string型字符串的删除386
18.2.8 string型字符串的查找387
18.2.9 string型字符串的比较388
18.2.10 判断string型字符串是否为空389
18.3 字符串的使用389
18.3.1 swap()交换两个字符串的内容389
18.3.2 将string型字符串转为char型字符串390
18.3.3 char型字符串与函数391
18.3.4 函数如何返回字符串392
18.4 结构体394
18.4.1 结构体的赋值397
18.4.2 结构体与函数398
18.4.3 结构体与string400
18.5 string数组与函数401
18.6 流的使用402
18.6.1 重载输出运算符〈〈403
18.6.2 友元的方式重载输出运算符405
18.6.3 重载自加运算符的执行次序406
18.6.4 重载输入运算符〉〉407
18.7 编写一个String类408
18.7.1 创建String类409
18.7.2 创建可自动调节大小的String类字符串对象410
18.7.3 限制数组越界412
18.7.4 用复制构造函数实现字符串的赋值功能413
18.7.5 用重载赋值运算符函数实现真正的字符串赋值功能419
18.7.6 用重载输出运算符operator〈〈()函数实现字符串的输出422
18.7.7 用重载输入运算符operator〉〉()函数实现字符串的输入424
18.7.8 用重载比较运算符实现字符串的比较426
18.7.9 为String类添加字符串的相加功能429
18.7.10 为String类添加字符串的+=功能435
18.7.11 完成后的String类439
第19章 代码重用443
19.1 包含443
19.2 将String类作为包含类445
19.3 为book类重载执行相加运算的成员函数449
19.4 包含对系统造成的消耗453
19.5 按别名传递book对象457
19.6 包含指向另一个类的指针460
19.6.1 数据类Date460
19.6.2 链表类Node460
19.6.3 标签类linkelist461
19.6.4 头节点类HeadNode462
19.6.5 尾节点TailNode类463
19.6.6 中间节点InterNode类464
19.6.7 InterNode类的构造函数465
19.6.8 InterNode类的插入函数465
19.6.9 全部程序467
19.7 将头节点、中间节点和尾节点合并为一个节点473
19.7.1 数据类Date473
19.7.2 由Date类派生的图书类Book474
19.7.3 由Date类派生的药品类medica474
19.7.4 创建一个节点类Node475
19.7.5 用来操作节点类Node的list类475
19.7.6 list类的getfirst()方法476
19.7.7 list类的operator[]方法476
19.7.8 list类的repeat()方法477
19.7.9 list类的insert()方法477
19.7.10 list类的find()方法479
19.7.11 重写的药品管理全部程序480
19.8 利用类的包含来实现代码重用485
19.9 私有继承491
19.10 什么时候使用私有继承,什么时候使用包含496
19.11 保护继承497
第20章 友元类与嵌套类498
20.1 友元类498
20.2 嵌套类505
第21章 流510
21.1 流的操作510
21.1.1 缓冲510
21.1.2 流和缓冲区510
21.1.3 标准输入输出对象511
21.1.4 重定向511
21.1.5 对象代表流511
21.2 用cout输出512
21.2.1 重载运算符operator〈〈512
21.2.2 清理缓冲区514
21.2.3 有关输出的相关函数515
21.2.4 设置输出的字段宽度516
21.2.5 设置填充字段517
21.2.6 设置浮点数的显示精度518
21.2.7 输出末尾的0519
21.2.8 设置标志519
21.2.9 setf()函数原型524
21.2.10 所有15个标志以及3个指示标志526
21.2.11 unset()函数527
21.2.12 标准控制符528
21.2.13 iomanip头文件与标准控制符530
21.3 用cin输入532
21.3.1 字符串的输入533
21.3.2 字符串的输入问题534
21.3.3 get()函数534
21.3.4 带字符引用参数的get()函数540
21.3.5 带2个参数的get()函数542
21.3.6 带3个参数的get()函数544
21.3.7 getline()函数546
21.3.8 read()函数548
21.3.9 gcount()函数550
21.3.10 peek()函数551
21.3.11 putback()函数552
21.4 文件的输入和输出553
21.4.1 输出数据到文件553
21.4.2 读取文件中的数据554
21.4.3 读取空格及空格后面的字符556
21.5 多种打开文件的方式557
21.6 检查文件是否打开559
21.7 二进制文件和文本文件562
21.7.1 以文本形式输出到文件563
21.7.2 以二进制形式输出到文件564
21.8 打开多个文件565
21.9 命令行处理文件566
21.10 使用命令行处理文件例程568
21.11 指定读取文件中的数据570
21.12 输出数据到文件指定位置处572
21.13 seekp()和seekg()函数的结合使用573
21.14 临时文件583
21.15 sstream字符串输入输出流类584
第22章 命名空间587
22.1 什么是命名空间587
22.2 创建命名空间590
22.2.1 扩充命名空间的内容590
22.2.2 尽量在命名空间之外定义函数590
22.2.3 命名空间中的成员都是公有的592
22.3 使用命名空间592
22.4 使用关键字using595
22.5 为你的命名空间取个别名598
22.6 未命名的命名空间599
22.6.1 未命名命名空间与全局变量的区别600
22.6.2 未命名命名空间与static的区别601
22.6.3 未命名命名空间、static与extern的区别601
22.7 标准命名空间std602
第23章 模板603
23.1 什么是模板603
23.2 重载模板606
23.3 具体化函数模板608
23.3.1 函数模板不能重载608
23.3.2 具体化函数模板解决重载问题610
23.3.3 具体化函数模板与实例化模板函数612
23.4 普通函数、函数模板与具体化函数模板的优先级614
23.4.1 普通函数和函数模板的执行次序614
23.4.2 函数模板与具体化函数模板的执行次序615
23.4.3 具体化函数模板与普通函数的优先级616
23.5 函数模板的匹配616
23.6 类模板的定义618
23.7 复杂类模板619
23.8 数组模板623
23.9 对象数组模板627
23.10 具有多个参数的模板630
23.11 为模板参数提供默认值632
23.12 约束模板634
23.13 模板成员635
23.14 将模板用作参数637
23.15 模板和友元639
23.15.1 非模板友元类和友元函数639
23.15.2 通用模板友元类和友元函数644
23.15.3 特定类型模板友元函数647
23.16 多余的临时对象651
23.17 静态成员和模板658
23.18 标准模板库659
23.18.1 容器659
23.18.2 顺序容器660
23.18.3 关联容器675
23.18.4 算法类691
23.18.5 总结719
第24章 异常和错误处理720
24.1 异常720
24.2 设置多条catch语句724
24.3 异常的派生727
24.4 创建异常类的成员函数729
24.5 异常类的虚函数731
24.6 异常类与模板的关系734
第25章 补充内容738
25.1 预处理过程738
25.1.1 预处理指令738
25.1.2 #include指令738
25.1.3 #define指令739
25.1.4 用#define指令替换常量739
25.1.5 用#define定义一个特定字符串并对其进行测试739
25.1.6 #ifdef、#define和#endif的用途740
25.1.7 带参数的#define741
25.1.8 宏与内联函数743
25.1.9 #运算符744
25.1.10 ##运算符744
25.1.11 #undef指令745
25.1.12 #if指令745
25.1.13 #endif指令745
25.1.14 #if defined指令745
25.1.15 #ifdef和#ifndef指令745
25.1.16 #elif指令746
25.1.17 #error指令746
25.1.18 #line指令746
25.1.19 #pragma指令747
25.2 预定义的宏754
25.3 assert()宏756
25.4 尝试编写一个简单的assert()宏756
25.5 不能为0的变量758
25.6 用宏函数来输出表达式的值760
25.7 调试的级别760
25.8 C++类型转换及运行时类型信息(RTII)762
25.8.1 动态类型转换符763
25.8.2 静态类型转换767
25.8.3 重新解释类型转换769
25.8.4 常类型转换770
25.8.5 运行时类型信息771
25.9 关键字volatile772
25.10 关键字const774
25.11 关键字mutable774
25.12 联合数据类型union775
25.13 联合数据类型的内存占用776
25.14 匿名联合体778
25.15 再谈指针779
25.15.1 指针与数组779
25.15.2 指针操作多维数组782
25.15.3 指向多维数组的指针作为函数参数785
25.15.4 字符串的指针786
25.15.5 接受字符串指针的函数787
25.15.6 指向字符串的指针变量与字符数组的区别788
25.15.7 指向函数的指针790
25.15.8 指向函数的指针的用途791
25.15.9 指针数组794
25.15.10 指向指针的指针795
25.16 位运算796
25.16.1 按位与“&”运算符797
25.16.2 按位或“|”运算符800
25.16.3 异或“^”运算符800
25.16.4 取反“~”运算符802
25.16.5 左移“〈〈”运算符803
25.16.6 右移“〉〉”运算符803
25.16.7 复合位运算符804
25.16.8 不同长度数字的位运算804
25.16.9 位运算的实例804
25.17 位字段805
25.18 区域差异808
25.18.1 locale类809
25.18.2 默认区域表示或全局区域表示809
25.18.3 时间与地理设置810
25.18.4 locale与time.h中时间函数的搭配使用829
25.18.5 区域表示locale与流的搭配使用832
25.18.6 区域表示locale与模板的搭配使用833
附录A ASCII码对照表835
附录B C++的关键字837
附录C C++常用头文件列表839
热门推荐
- 3465935.html
- 3154151.html
- 2983523.html
- 258642.html
- 322825.html
- 2283878.html
- 2759378.html
- 1120219.html
- 1594069.html
- 3653957.html
- http://www.ickdjs.cc/book_1265598.html
- http://www.ickdjs.cc/book_1082454.html
- http://www.ickdjs.cc/book_1850726.html
- http://www.ickdjs.cc/book_2599051.html
- http://www.ickdjs.cc/book_3614210.html
- http://www.ickdjs.cc/book_3428730.html
- http://www.ickdjs.cc/book_3707847.html
- http://www.ickdjs.cc/book_1818596.html
- http://www.ickdjs.cc/book_1870796.html
- http://www.ickdjs.cc/book_2265499.html