图书介绍
完美C++ 第5版 双色【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- (美)萨维奇,(美)默克著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121231988
- 出版时间:2014
- 标注页数:769页
- 文件大小:136MB
- 文件页数:790页
- 主题词:C语言-程序设计
PDF下载
下载说明
完美C++ 第5版 双色PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 C++基础1
1.1 C++简介2
C++语言的起源2
C++与面向对象编程3
C++的特点3
C++术语3
C++程序示例3
1.2 变量、表达式及赋值语句5
标识符5
变量6
赋值语句8
string类简介9
陷阱:未初始化变量9
提示:采用有意义的变量名10
更多赋值语句11
赋值兼容性11
字面值12
转义序列14
命名常量14
算数运算符和表达式16
整数和浮点数除法17
陷阱:全整数除法17
类型转换18
自增和自减运算符20
陷阱:求值顺序21
1.3 控制台输入/输出22
使用cout输出22
换行符23
提示:以n或endl结束程序24
格式化浮点数24
用cerr输出25
用cin输入25
提示:输入/输出中的换行28
1.4 编程风格28
注释28
1.5 库与命名空间29
库与include命令29
命名空间29
陷阱:库名的问题30
第2章 流程控制37
2.1 布尔表达式38
创建布尔表达式38
陷阱:不等式连写39
布尔表达式求值40
优先级规则41
陷阱:整数值用作布尔值44
2.2 分支机制45
if-else语句45
复合语句47
陷阱:用=代替==47
省略else49
嵌套语句49
多分支if-else语句49
switch语句50
陷阱:遗漏switch语句中的break52
提示:在菜单中使用switch语句52
枚举类型53
条件运算符53
2.3 循环54
while和do-while循环54
再谈自增和自减运算符57
逗号运算符58
for语句59
提示:重复N次的循环61
陷阱:for语句中额外的分号62
陷阱:无限循环62
break与continue语句65
嵌套循环67
2.4 文件输入简介67
通过ifstream读取文本文件内容68
第3章 函数基础81
3.1 预定义函数82
带有返回值的预定义函数82
预定义的void函数86
随机数生成器88
3.2 自定义函数91
定义带有返回值的函数91
函数声明的另一种形式93
陷阱:参数顺序的错误93
调用函数的函数94
示例:一个四舍五入的函数94
返回布尔值的函数96
定义void函数96
void函数中的return语句98
前提条件和运行结果98
main函数100
递归函数100
3.3 作用域规则101
局部变量101
过程抽象103
全局常量和全局变量104
语句块106
嵌套作用域107
提示:在分支和循环语句中使用函数调用107
for循环体中的变量声明107
第4章 函数与重载117
4.1 参数118
传值参数118
初识引用参数120
引用传递调用机制详解122
常量引用参数124
示例:函数swapValues124
提示:一种操作,而不是代码125
混合参数列表126
提示:使用何种参数126
陷阱:无意的局部变量128
提示:选择形参的名字129
示例:买比萨129
4.2 重载与默认实参132
重载简介132
陷阱:自动类型转换与重载134
重载解析的规则135
示例:改写“买比萨程序”136
默认参数138
4.3 函数的测试和调试140
assert宏140
占位程序和驱动程序141
第5章 数组151
5.1 数组简介152
数组的声明和引用152
提示:对数组使用for循环154
陷阱:数组的索引始终是从0开始的154
提示:使用已定义的常量作为数组的大小154
内存中的数组155
陷阱:数组越界157
数组的初始化157
5.2 函数中的数组159
索引变量作为函数实参159
整个数组作为函数实参160
const修饰符163
陷阱:const参数的不一致使用164
返回数组的函数164
示例:生产图表165
5.3 用数组编程169
部分填充的数组169
提示:不要吝啬形参的使用169
示例:查询数组172
示例:给数组排序174
5.4 多维数组178
多维数组基础178
多维数组参数179
示例:使用二维数组的记分程序179
第6章 结构体和类195
6.1 结构体196
结构体类型198
陷阱:漏掉结构体定义末尾的分号200
结构体作为函数参数201
提示:使用多重结构体201
结构体的初始化204
6.2 类206
定义类和成员函数206
封装211
公有成员和私有成员211
取值和赋值函数214
提示:接口和实现的分离216
提示:封装的测试216
结构体与类217
提示:对象思考217
第7章 构造函数及其他工具225
7.1 构造函数226
构造函数的定义226
陷阱:无参构造函数230
构造函数的显式调用230
提示:总是为类定义一个默认构造函数231
示例:BankAccount类233
类类型成员变量238
7.2 其他工具241
const修饰符241
陷阱:const的不一致用法243
内联函数246
静态成员248
嵌套类和局部类定义251
7.3 向量——标准模板库预览251
向量基础252
陷阱:方括号的索引超过向量的大小253
提示:向量的赋值254
效率问题255
第8章 运算符重载、友元和引用263
8.1 基本运算符的重载264
重载基础264
提示:构造函数可以返回一个对象269
返回常量类型270
一元运算符的重载272
作为成员函数的运算符重载272
提示:类可以访问其所有对象275
重载函数调用符()275
陷阱:重载&&、Ⅱ及逗号运算符275
8.2 友元函数与自动类型转换276
构造函数的自动类型转换276
陷阱:成员运算符和自动类型转换277
友元函数277
友元类280
陷阱:不支持友元的编译器281
8.3 引用和其他运算符重载282
引用282
提示:返回类的成员变量283
重载“>>”和“<<”284
提示:应使用什么样的返回值类型289
赋值运算符291
重载自增和自减运算符291
重载数组运算符[]294
基于左值和右值的重载296
第9章 字符串303
9.1 字符串类型数组304
C字符串值和C字符串变量304
陷阱:对C字符串使用“=”和“==”308
<cstring>中的其他函数309
示例:命令行参数311
C字符串的输入/输出313
9.2 字符操作工具315
字符的输入/输出315
成员函数get和put315
示例:使用换行函数检查输入318
陷阱:输入时没有处理‘n’319
成员函数putback、peek和ignore320
字符操作函数322
陷阱:函数toupper和tolower返回int型数值324
9.3 标准string类325
标准string类简介325
string类的输入和输出327
提示:getline函数的其他版本330
陷阱:对cin同时使用>>和getline331
使用string类处理字符串331
示例:回文检测335
string类对象和C字符串的转换338
第10章 指针和动态数组347
10.1 指针348
指针变量349
内存管理基础355
陷阱:悬空指针357
动态变量和自动变量358
提示:定义指针类型358
陷阱:指针用作传值参数360
指针的应用361
10.2 动态数组362
数组变量和指针变量362
创建并使用动态数组363
示例:一个返回数组的函数366
指针运算368
多维动态数组368
10.3 类、指针和动态数组371
运算符->371
this指针371
重载赋值运算符372
示例:部分填充数组的类378
析构函数380
拷贝构造函数381
第11章 分散编译和命名空间391
11.1 分散编译392
封装回顾392
头文件和实现文件393
示例:DigitalTime类399
提示:可重用的组件401
使用#ifndef401
提示:定义其他库403
11.2 命名空间404
命名空间和us ing指令404
创建一个命名空间406
using声明409
限定名称410
提示:为命名空间取名412
示例:一个定义在命名空间中的类412
无名称的命名空间413
陷阱:混淆全局命名空间和无名称命名空间418
提示:用无名称命名空间代替static修饰符419
提示:隐藏帮助函数419
嵌套命名空间420
提示:应该如何指明使用的命名空间420
第12章 流和文件I/O操作429
12.1 I/O流430
文件I/O431
陷阱:流变量的使用限制434
向文件追加输出内容435
提示:打开文件的另一种方法436
提示:检查一个文件是否已被成功打开439
字符I/O440
文件结束检查440
12.2 I/O流工具444
使用文件名输入444
使用流函数进行格式化输出444
控制符447
保存设置的标记448
更多的输出流成员函数449
示例:整理文件格式450
示例:编辑文本文件452
12.3 流的继承层次:继承概述455
流之间的继承455
示例:另一版本的newLine函数457
使用类stringstream解析字符串460
12.4 随机文件存取462
第13章 递归477
13.1 递归void函数478
示例:竖直排列的数字479
跟踪一个递归调用481
深入理解递归484
陷阱:无限递归485
递归调用中的栈487
陷阱:栈溢出488
递归与迭代的比较488
13.2 有返回值的递归函数489
有返回值的递归函数的一般形式489
示例:另一个幂函数490
交叉递归494
13.3 按递归方式思考问题496
递归设计技巧496
二分查找497
编码498
检查递归是否正确501
效率502
第14章 继承513
14.1 继承基础514
派生类514
派生类的构造函数522
陷阱:使用基类的私有成员变量524
陷阱:私有成员函数是无法被有效继承的526
protec ted限定符526
成员函数的重定义529
重定义与重载530
访问被重定义过的基类函数531
不可被继承的函数532
14.2 利用继承编程533
派生类中的赋值运算符和拷贝构造函数533
派生类的析构函数534
示例:可备份的部分填充的数组534
陷阱:赋值运算符两边是同一个对象541
示例:PFArrayDBak的另一种实现542
提示:一个类可以访问本类所有对象的私有成员544
提示:“是一个”和“有一个”544
保护继承和私有继承545
多继承546
第15章 多态与虚函数555
15.1 虚函数基础556
延迟绑定556
C++中的虚函数557
提示:virtual属性会被继承563
提示:什么时候应该使用虚函数563
陷阱:没有对虚成员函数进行定义564
抽象类与纯虚函数564
示例:抽象类565
15.2 指针和虚函数567
虚函数与扩展类型兼容性567
陷阱:切片问题571
提示:使析构函数成为虚函数572
向下类型转换和向上类型转换573
C++如何实现虚函数574
第16章 模板585
16.1 函数模板586
函数模板语法587
陷阱:编译器的复杂性590
提示:如何定义模板592
示例:一个通用的排序函数592
陷阱:使用模板时误用了不正确的数据类型596
16.2 类模板597
类模板语法598
示例:一个数组模板类601
模板中的vector和basic string606
16.3 模板和继承606
示例:带备份的部分填充数组模板类607
第17章 链式数据结构617
17.1 节点和链表619
节点619
链表623
在链表头插入节点625
陷阱:丢失节点627
插入和删除链表内的节点628
陷阱:对动态数据结构使用赋值运算符631
搜索链表631
搜索函数伪代码632
双向链表633
为双向链表增加一个节点635
从双向链表中删除一个节点635
示例:使用双向链表实现的通用排序模板函数641
17.2 链表的应用644
示例:栈模板类644
示例:队列模板类650
提示:命名空间的注解652
友元类以及类似的其他选择653
示例:包含节点链的哈希表655
字符串哈希函数656
哈希表的效率660
示例:集合(set)模板类661
集合的基本操作662
链表创建的集合的效率667
17.3 迭代器668
指针作为迭代器668
迭代器类669
示例:迭代器类670
17.4 树676
树的属性676
示例:树模板类678
第18章 异常处理695
18.1 异常处理基础696
异常处理的简单样例697
定义自己的异常类704
多个抛出和捕获704
陷阱:首先捕获比较明确的异常707
提示:异常类可以很简单708
在函数中抛出异常708
异常说明710
陷阱:派生类中的异常说明712
18.2 异常处理的编程技术713
抛出异常的时机713
陷阱:未被捕获的异常714
陷阱:嵌套try-catch块715
陷阱:过度使用异常715
异常类层次结构715
可用内存测试716
再次抛出异常716
第19章 标准模板库721
19.1 迭代器723
迭代器基础723
陷阱:编译器问题726
迭代器的种类728
常量迭代器和可变迭代器731
反向迭代器732
其他种类的迭代器733
19.2 容器734
连续容器734
陷阱:迭代器和删除元素738
提示:容器中的类型定义739
容器适配器栈和队列739
陷阱:底层容器740
关联式容器set和map742
效率747
19.3 泛型算法748
运行时间和大-O表示法749
容器访问运行时间752
不改变序列的算法753
改变序列的算法757
集合算法758
排序算法7601
热门推荐
- 3021587.html
- 1356253.html
- 1804379.html
- 8126.html
- 3807049.html
- 2420825.html
- 1564271.html
- 948207.html
- 1893282.html
- 1202373.html
- http://www.ickdjs.cc/book_2149963.html
- http://www.ickdjs.cc/book_2844000.html
- http://www.ickdjs.cc/book_469852.html
- http://www.ickdjs.cc/book_1117938.html
- http://www.ickdjs.cc/book_233757.html
- http://www.ickdjs.cc/book_1455727.html
- http://www.ickdjs.cc/book_3622100.html
- http://www.ickdjs.cc/book_2353719.html
- http://www.ickdjs.cc/book_858919.html
- http://www.ickdjs.cc/book_422316.html