图书介绍
完美C++教程PDF|Epub|txt|kindle电子书版本网盘下载
- (美)Walter Savitch著;熊歆斌译 著
- 出版社: 北京:清华大学出版社
- ISBN:7302111855
- 出版时间:2005
- 标注页数:728页
- 文件大小:107MB
- 文件页数:745页
- 主题词: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.1.1 C++语言的起源1
目录1
1.1.2 C++与面向对象的程序设计2
1.1.3 C++特点2
1.1.4 C++术语2
1.1.5 C++程序示例2
1.2.1 标识符4
1.2 变量、表达式及赋值语句4
1.2.2 变量5
1.2.3 赋值语句7
1.2.4 更多赋值语句9
1.2.5 赋值兼容性10
1.2.6 文字常量11
1.2.7 转义序列12
1.2.8 名字常量13
1.2.9 算术操作符和表达式14
1.2.10 整数和浮点数除法15
1.2.11 类型转换17
1.2.12 自增和自减操作符19
1.3 控制台输入/输出21
1.3.1 使用cout输出22
1.3.2 输出时的换行22
1.3.3 格式化带小数点的数字23
1.3.4 用cerr输出25
1.3.5 用cin输入25
注释27
1.4 程序的风格27
1.5 库与名字空间28
1.5.1 库及include命令28
1.5.2 名字空间28
第2章 流程控制34
2.1 布尔表达式34
2.1.1 创建布尔表达式34
2.1.2 布尔表达式求值36
2.1.3 优先级原则37
2.2.1 if-else语句41
2.2 分支机制41
2.2.2 复合语句43
2.2.3 省略else45
2.2.4 嵌套语句45
2.2.5 多分支if-else语句46
2.2.6 switch语句47
2.2.7 枚举类型50
2.2.8 条件操作符50
2.3.1 while和do-while语句51
2.3 循环51
2.3.2 再谈增量、减量操作符54
2.3.3 逗号操作符56
2.3.4 for语句57
2.3.5 break与continue语句63
2.3.6 嵌套循环66
第3章 函数基础72
3.1 预定义的函数72
3.1.1 返回值的预定义函数72
3.1.2 预定义的void函数76
3.1.3 随机数生成器78
3.2 程序员定义的函数81
3.2.1 定义返回值的函数81
3.2.2 函数声明的替代形式84
3.2.3 调用函数的函数84
3.2.4 返回布尔值的函数87
3.2.5 定义void函数88
3.2.6 void函数中的return语句89
3.2.8 main函数91
3.2.7 前提条件和执行结果91
3.2.9 递归函数92
3.3 作用域规则93
3.3.1 局部变量93
3.3.2 过程抽象95
3.3.3 全局常量与全局变量96
3.3.4 语句块98
3.3.5 嵌套作用域99
3.3.6 for循环中声明的变量99
4.1.1 传值调用参数106
4.1 参数106
第4章 参数与重载106
4.1.2 引用调用参数初步108
4.1.3 引用调用机制详解111
4.1.4 常量引用参数113
4.1.5 混合参数列表114
4.2 重载与默认实参121
4.2.1 重载简介121
4.2.2 分辨重载的准则125
4.2.3 默认实参128
4.3 测试及调试函数130
4.3.1 assert宏130
4.3.2 与位程序和驱动程序131
第5章 数组138
5.1 数组简介138
5.1.1 数组的声明和引用138
5.1.2 内存中的数组142
5.1.3 数组的初始化144
5.2.1 作为函数实参的索引变量146
5.2 函数中的数组146
5.2.2 整个数组作为函数实参147
5.2.3 const参数修饰词150
5.2.4 返回一个数组的函数152
5.3 用数组编程157
部分填充的数组157
5.4 多维数组167
5.4.1 多维数组基础167
5.4.2 多维数组参数168
6.1 结构182
第6章 结构和类182
6.1.1 结构类型184
6.1.2 结构作为函数参数187
6.1.3 结构的初始化190
6.2 类193
6.2.1 定义类和成员函数193
6.2.2 封装198
6.2.3 公有和私有成员199
6.2.4 取值和赋值函数202
6.2.5 结构和类206
第7章 构造函数及其他工具211
7.1 构造函数211
7.1.1 构造函数的定义211
7.1.2 构造函数的显式调用217
7.1.3 类类型成员变量226
7.2 其他工具229
7.2.1 const参数修饰符229
7.2.2 内联函数235
7.2.3 静态成员236
7.2.4 嵌套类和局部类定义240
7.3 向量——标准模板库预览240
7.3.1 向量基础241
7.3.2 效率问题244
第8章 操作符重载、友元和引用249
8.1 基本操作符重载249
8.1.1 重载基础249
8.1.2 返回常量类型256
8.1.3 重载一元操作符259
8.1.4 作为成员函数的操作符重载260
8.1.5 重载函数调用符()263
8.2 友元函数和自动类型转换263
8.2.1 构造函数的自动类型转换263
8.2.2 友元函数265
8.2.3 友元类269
8.3 引用和其他操作符重载269
8.3.1 引用270
8.3.2 重载“<<”和“>>”271
8.3.4 重载自增和自减操作符280
8.3.3 赋值操作符280
8.3.5 重载数组操作符[ ]283
8.3.6 基于左值和右值的重载285
第9章 字符串291
9.1 数组类型的字符串291
9.1.1 C字符串值和C字符串变量291
9.1.2 <cstring>库中的其他函数296
9.1.3 C字符串的输入和输出299
9.2 字符操作工具301
9.2.1 字符输入/输出301
9.2.2 成员函数get和put302
9.2.3 成员函数putback、peek和ignore307
9.2.4 字符操作函数309
9.3 标准string类312
9.3.1 标准类string简介312
9.3.2 string类的输入/输出314
9.3.3 使用string类进行字符串处理319
9.3.4 string类对象和C字符串的相互转换326
10.1 指针334
第10章 指针和动态数组334
10.1.1 指针变量335
10.1.2 内存管理基础341
10.1.3 动态变量和自动变量344
10.1.4 指针的应用348
10.2 动态数组348
10.2.1 数组变量和指针变量348
10.2.2 创建和使用动态数组350
10.2.3 指针运算355
10.2.4 多维动态数组356
10.3.1 ->操作符358
10.3 类、指针和动态数组358
10.3.2 this指针359
10.3.3 重载赋值操作符360
10.3.4 析构函数369
10.3.5 复制构造函数370
11.1 分散编译378
11.1.1 封装回顾378
第11章 分散编译和名字空间378
11.1.2 头文件和实现文件379
11.1.3 使用#ifndef388
11.2 名字空间391
11.2.1 名字空间和using命令391
11.2.2 创建一个名字空间393
11.2.3 using声明396
11.2.4 限定名字397
11.2.5 未命名的名字空间401
11.2.6 嵌套名字空间408
12.1 I/O流415
第12章 流和文件I/O操作415
12.1.1 文件I/O416
12.1.2 向文件中添加内容419
12.1.3 字符I/O425
12.1.4 文件末尾检查425
12.2 流I/O的工具429
12.2.1 文件名作为输入429
12.2.2 使用流函数对输出格式化430
12.2.3 操作算子(Manipulators)433
12.2.5 其他的输出流成员函数434
12.2.4 保存设定的标记434
12.3 流的层次:继承的简要介绍441
12.4 随机文件存取446
第13章 递归455
13.1 递归void函数455
13.1.1 一个递归调用的跟踪458
13.1.2 递归的进一步认识460
13.1.3 递归调用的栈463
13.1.4 递归与迭代的比较464
有返回值的递归函数的一般形式466
13.2 有返回值的递归函数466
13.3.1 递归设计技术470
13.3 按递归的方式思考问题470
13.3.2 二分查找472
13.3.3 编码474
13.3.4 检查递归的正确性476
13.3.5 效率477
14.1 继承基础486
14.1.1 派生类486
第14章 继承486
14.1.2 派生类的构造函数495
14.1.3 protected限定词498
14.1.4 成员函数的重定义501
14.1.5 重定义与重载502
14.1.6 访问重定义函数的基类版本503
14.1.7 不可继承的函数504
14.2 使用继承进行编程505
14.2.1 派生类中的赋值操作符和复制构造函数505
14.2.2 派生类的析构函数506
14.2.3 保护继承和私有继承518
14.2.4 多继承519
第15章 多态与虚函数524
15.1 虚函数基础524
15.1.1 后绑定524
15.1.2 C++中的虚函数525
15.1.3 抽象类和纯虚函数532
15.2 指针和虚函数535
15.2.1 虚函数和扩展类型兼容性535
15.2.2 向下转换和向上转换541
15.2.3 C++是如何实现虚函数543
第16章 模板546
16.1 函数模板546
定义函数模板的语法547
16.2 类模板558
16.2.1 类模板的语法558
16.2.2 C++中的模板类vector和basic_stirng568
16.3 模板和继承568
17.1 节点和链表579
第17章 链式数据结构579
17.1.1 节点580
17.1.2 链表584
17.1.3 向链表头插入一个节点585
17.1.4 向链表中插入或移除节点589
17.1.5 搜索链表592
17.2 链表的应用599
17.3 迭代器611
17.3.2 迭代器类612
17.3.1 指针作为迭代器612
17.4 树619
树的性质619
第18章 异常处理636
18.1 异常处理基础636
18.1.1 异常处理的一个样例637
18.1.2 自定义异常类644
18.1.3 多重抛出和捕获646
18.1.4 在函数中抛出异常649
18.1.5 异常说明651
18.2.1 抛出异常的时机654
18.2 异常处理的编程技术654
18.2.2 异常类的层次结构656
18.2.3 测试可用内存657
18.2.4 再次抛出异常657
第19章 标准模板库660
19.1 迭代器661
19.1.1 迭代器基础661
19.1.2 迭代器的种类665
19.1.3 常量和可变迭代器669
19.1.4 反向迭代器670
19.1.5 其他几种迭代器672
19.2 容器673
19.2.1 连续容器673
19.2.2 容器适配器栈和队列678
19.2.3 关联容器集合和映射681
19.2.4 效率685
19.3 泛型算法685
19.3.1 运行时间和Big-O记法686
19.3.2 容器访问运行时间689
19.3.3 不改变序列的算法690
19.3.4 改变序列的算法694
19.3.5 集合算法695
19.3.6 排序算法697
第20章 模式和UML703
20.1 模式703
20.1.1 适配器模式704
20.1.2 模型-视图-控制器模式704
20.1.3 排序模式的效率710
20.1.4 模式形式体系712
20.2 UML713
20.2.1 UML的历史713
20.2.2 UML的类图表714
20.2.3 类的相互作用714
附录1 C++关键字718
附录2 操作符优先级719
附录3 ASCII字符集721
附录4 一些库函数722
附录5 旧的和新的头文件728