图书介绍
C++面向对象程序设计 基础、数据结构与编程思想 第4版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)Walter Savitch著;周靖译 著
- 出版社: 北京:清华大学出版社
- ISBN:7302075948
- 出版时间:2003
- 标注页数:598页
- 文件大小:101MB
- 文件页数:618页
- 主题词:C语言-程序设计
PDF下载
下载说明
C++面向对象程序设计 基础、数据结构与编程思想 第4版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
1.1 计算机系统1
1.1.1 硬件1
目录1
第1章 计算机和C++编程入门1
概述1
1.1.2 软件5
1.1.4 编译器6
1.1 3高级语言6
1.1.5 历史回顾8
自测题8
1.2.1 算法9
1.2 编程和问题求解9
1.2.2 程序设计11
1.2.4 软件生存期12
1.2.3 面向对象编程12
1.3.1 C++语言的起源13
1.3 C++入门13
自测题13
1.3.2 一个C++示范程序14
1.3.5 简单C++程序的布局17
1.3.4 编程提示:输入和输出语法17
1.3.3 陷阱:在n中使用错误的斜杠17
1.3.7 编译和运行C++程序19
1.3.6 陷阱:在include文件名前添加一个空格19
1.3.8 编程提示:让程序运行起来20
1.4 测试和调试21
自测题21
1.4.2 陷阱:错误地假定程序正确22
1.4.1 程序错误的种类22
小结23
自测题23
自测题答案24
编程项目25
2.1.1 变量26
2.1 变量和赋值26
第2章 C++基础知识26
概述26
预备知识26
2.1.2 名称:标识符28
2.1.3 变量声明29
2.1.4 赋值语句30
2.1.5 陷阱:未初始化的变量31
2.1.6 编程提示:使用有意义的名称32
9.2.1 命名空间和usmg预编译指令33
2.2.1 使用cout进行输出33
自测题33
2.2 输入和输出33
2.2.2 include预编译指令和命名空间34
2.2.3 转义序列36
2.2.5 格式化带小数点的数字37
2.2.4 编程提示:用\n或endl终止每一个程序37
2.2.6 用cin进行输入38
2.2.7 设计输入和输出39
自测题40
2.2.8 编程提示:I/O中的行中断40
2.3.1 int类型和double类型41
2.3 数据类型和表达式41
2.3.2 其他数字类型42
2.3.3 char类型43
2.3.5 类型的兼容性44
2.3.4 bool类型44
2.3.6 算术操作符和表达式46
自测题48
2.3.7 陷阱:除法中的整数48
2.4.1 一个简单的分支机制49
2.3.8 更多赋值语句49
2.4 简单控制流程49
2.4.3 陷阱:错用=来取代=54
24.2 陷阱:连续的不等式54
自测题55
2.4.4 复合语句55
2.4.5 简单的循环机制56
2.4.7 编程示例:信用卡余额60
2.4.6 递增操作符和递减操作符60
2.4.8 陷阱:无限循环61
自测题62
2.5.2 注释63
2.5 程序风格63
2.5.1 缩进63
2.5.3 为常量命名65
小结66
自测题66
自测题答案67
编程项目70
3.2 预定义函数72
第3章 过程抽象和返回一个值的函数72
概述72
预备知识72
3.1 自顶向下设计72
3.2.1 使用预定义函数73
3.2.2 强制类型转换76
3.2.4 陷阱:整数除法丢弃了小数部分78
3.2.3 强制类型转换的古老形式78
3.3.1 函数定义79
自测题79
3.3 程序员自定义函数79
3.3.3 陷阱:实参顺序错误83
3.3.2 另种形式的函数声明83
3.3.5 再论函数定义的位置85
3.3 4函数定义语法总结85
34.1 黑盒的比喻86
自测题86
3.4 过程抽象86
3.4.2 编程提示:选择形参名称88
3.4.3 案例分析:购买比萨89
3.4.4 编程提示:使用伪代码93
3.5.1 函数如同小程序94
自测题94
3.5 局部变量94
3.5.3 全局常量和全局变量96
3.5.2 编程实例:豌豆试验田96
3.5.4 传值调用形参是局部变量98
3.5.5 再论命名空间99
3.5.6 编程实例:阶乘函数101
自测题101
36.1 重载入门102
3.6 重载函数名称102
36.2 编程实例;购买比萨(修订版)104
3.6.3 自动类型转换106
小结107
自测题107
自测题答案108
编程项目110
4.1.1 void函数的定义112
第4章 所有子任务的函数112
概述112
预备知识112
4.1 void函数112
4.1.2 编程实例:温度换算114
4.1.3 void函数中的return语句115
自测题116
4.2.1 初探传引用调用117
4.2 传引用调用形参117
4.2.2 传引用调用详解119
4.2.3 编程实例:swap_values函数121
4.2.4 混合的参数列表122
4.2.5 编程提示:应该使用哪种参数123
4.2.6 陷阱:疏忽的局部变量124
自测题125
4.3.1 由函数来调用函数126
4.3 使用过程抽象126
4.3.3 案例分析:超市定价系统128
4.3.2 前条件和后条件128
stub和驱动程序132
自测题132
4.4 测试和调试函数132
自测题135
自测题答案136
小结136
编程项目139
5.1 流和基本文件I/O142
第5章 I/O流——对象和类入门142
概述142
预备知识142
5.1.2 文件I/O143
5.1.1 文件之于I/O的重要性143
5.1.3 类与对象入门146
5.1.4 编程提示:检查文件是否成功打开148
5.1.5 文件I/O技术150
5.1.6 追加到文件(选读)152
自测题152
5.1.7 文件名作为输入(选读)154
5.2.1 用流函数格式化输出156
5.2 流I/O工具156
5.2.2 操纵元159
自测题160
5.2.3 流作为函数实参161
5.2.4 编程提示:检查文件尾163
5.2.5 命名空间的问题164
5.3 字符I/O165
5.2.6 编程实例:整理文件格式165
自测题165
5.3.1 get和put成员函数166
5.3.2 putback成员函数(选读)168
5.3.3 编程实例:检查输入169
5.3.4 陷阱:输入中不期而遇的’n’171
自测题172
5.3 5eof成员函数173
5.3.6 编程实例:编辑文本文件175
自测题175
5.3.7 预定义的字符函数176
自测题178
5.3.8 陷阱:toupper和tolower返回int值178
5.4.1 流类之间的继承关系179
5.4 继承179
5.4.2 编程实例:另一个newline函数182
5.4.3 函数的默认参数(选读)183
自测题184
自测题答案185
小结185
编程项目190
6.1.1 用于异种数据的结构194
第6章 定义类194
概述194
预备知识194
6.1 结构194
6.1.3 结构作为函数参数198
6.1.2 陷阱:结构定义中忘记一个分号198
6.1.4 编程提示:使用层次化结构199
6.1.5 对结构进行初始化200
自测题201
6.2.1 定义类和成员函数202
6.2 类202
6.2.2 公共成员和私有成员206
自测题206
自测题212
6.2.3 编程提示:将所有成员变量变成私有212
6.2.4 编程提示:定义取值函数和赋值函数212
6.2.6 编程实例:BankAccount类(版本1)213
6.2.5 编程提示:将赋值操作符用于对象213
6.2.7 总结类的一些特征217
6.2.8 用于初始化的构造函数218
自测题218
6.2.9 编程提示:总是包括一个默认构造函数224
6.2.10 陷阱:无参数构造函数225
6.3 抽象数据类型226
自测题226
6.3.1 用于生成抽象数据类型的类227
6.3.2 编程实例:类的另一种实现230
自测题232
自测题答案233
小结233
编程项目237
7.1.1 布尔表达式求值239
第7章 更多的控制流程239
概述239
预备知识239
7.1 使用布尔表达式239
7.1.2 陷阱:将布尔表达式转换成int值242
自测题243
自测题244
7.1.3 能返回布尔值的函数244
7.2 多路分支245
7.1.4 枚举类型(选读)245
7.2.2 编程提示:在嵌套语句中使用花括号246
7.2.1 嵌套语句246
7.2.3 多路if-else语句248
72.4 编程实例:州税250
自测题251
7.2.5 switch语句252
7.2.7 为菜单使用switch语句255
7.2.6 陷阱:忘记在switch语句中添加break255
函数调用256
7.2.8 编程提示::在分支语句中使用256
7.2.9 块257
自测题259
7.2.1 0陷阱:疏忽局部变量259
7.3.1 while语句回顾260
7.3 C++循环语句详解260
7.3.2 再论递增操作符和递减操作符261
7.3.3 for语句263
自测题263
7.3.4 陷阱:for语句中多余的分号267
自测题268
7.3.5 应该使用哪种循环268
7.3.7 break语句269
7.3.6 陷阱:未初始化的变量和无限循环269
自测题270
7.3.8 陷阱:嵌套循环中的break语句270
7.4.1 求和与求乘积的循环271
7.4 设计循环271
7.4.2 终止循环272
7.4.3 嵌套循环275
7.4.4 调试循环278
自测题278
小结280
自测题280
自测题答案281
编程项目284
8.1.1 编程实例:一个相等性函数287
第8章 友元函数和重载操作符287
概述287
预备知识287
8.1 友元函数287
8.1.2 友元函数289
自测题289
8.1.4 编程提示:同时使用成员函数和非成员函数291
8.1.3 编程提示:定义取值函数和友元函数291
8.1.5 编程实例:Money类(版本1)293
8.1 6实现digit_to_int(选读)297
自测题298
8.1.7 陷阱:数字常量中的前置零298
8.1.8 const参数修饰符299
8.1.9 陷阱:不一致地使用const300
自测题302
8.2.1 重载操作符303
8.2 重载操作符303
8.2.2 用于自动类型转换的构造函数306
自测题306
8.2.3 重载一元操作符307
自测题307
8.2.4 重载>>和<<308
自测题314
自测题答案315
小结315
编程项目319
9.1.1 ADT回顾321
第9章 独立编译和命名空间321
概述321
预备知识321
9.1 独立编译321
9.1.2 案例分析:一个独立编译的类DigitalTime322
9.1.3 使用#ifndef329
自测题331
9.1.4 编程提示:定义其他库331
9.2 命名空间332
9.2.2 创建命名空间333
9.2.3 限定名称335
自测题335
9.2.4 命名空间的微妙之处(选读)336
9.2.5 无名命名空间337
自测题337
自测题341
9.2.7 陷阱:混淆全局命名空间和无名命名空间341
9.2.6 编程提示:为命名空间选择一个名称341
小结342
自测题答案343
编程项目344
10.1.1 声明和引用数组345
10.1 数组入门345
第10章 数组345
概述345
预备知识345
10.1.4 编程提示:为数组长度使用一个已定义常量347
10.1.3 陷阱:数组索引总是从零开始347
10.1.2 编程提示:为数组使用for循环347
10.1.5 数组在内存中的表示348
10.1.6 陷阱:数组索引越界349
自测题350
10.1.7 初始化数组350
10.2.1 索引变量作为函数参数352
10.2 函数中的数组352
10.2.2 整个数组作为函数参数353
自测题353
10.2.3 const参数修饰符356
10.2.4 陷阱:不一致地使用const参数357
10.2.6 案例分析:产量图358
10.2.5 返回数组的函数358
10.3.1 部分填充数组367
10.3 数组编程367
自测题367
10.3.2 编程提示:不要吝啬形参369
10.3.3 编程实例:数组搜索370
10.3.4 编程实例:数组排序371
自测题374
10.4.1 类数组375
10.4 数组和类375
10.4.2 数组作为类成员378
自测题378
10.4.3 编程实例:用于部分填充数组的一个类379
10.5.1 多维数组基础381
10.5 多维数组381
自测题381
10.5.2 多维数组参数382
10.5.3 编程实例:二维打分程序383
自测题386
10.5.4 陷阱:在数组索引之间使用逗号386
自测题答案387
小结387
编程项目391
11.1 字符串的一种数组类型397
预备知识397
第11章 字符串和向量397
概述397
11.1.1 C字符串值和C字符串变量398
11.1.2 陷阱:为C字符串使用=和=400
11.1.3 <cstring>中的其他函数402
自测题403
11.1.4 C字符串输入和输出404
11.1.5 C字符串到数字的转换和可靠输入406
自测题406
11.2.1 标准类string简介410
11.2 标准string类410
11.2.2 string类的I/O412
11.2.3 编程提示:getline的其他版本414
自测题414
11.2.4 陷阱:混合使用“cin>>变量;”和getline415
11.2.5 用string类进行字符串处理416
11.2.6 编程实例:回文测试418
11.2.7 string对象和C字符串之间的转换421
自测题421
11.3.1 向量基础知识422
11.3 向量422
11.3.3 编程提示:向量赋值具有良好行为424
11.3.2 陷阱:使用方括号时超出向量长度424
11.3.4 效率问题425
自测题答案426
小结426
自测题426
编程项目428
12.1 指针430
预备知识430
第12章 指针和动态数组430
概述430
12.1.1 指针变量431
12.1.2 基本内存管理436
自测题436
12.1.4 静态变量和自动变量437
12.1.3 陷阱:虚悬指针437
12.1.5 编程提示:定义指针类型438
12.2.1 数组变量和指针变量439
12.2 动态数组439
自测题439
12.2.2 创建和使用动态数组440
自测题443
12.2.3 指针运算(选读)444
12.2.4 多维动态数组(选读)445
自测题445
12.3 类和动态数组446
12.3.1 编程实例:一个字符串变量类447
12.3.2 析构函数450
12.3.3 陷阱:指针作为传值调用参数451
12.3.4 拷贝构造函数452
自测题455
12.3.5 重载赋值操作符456
自测题答案458
小结458
自测题458
编程项目460
13.1.1 案例分析:垂直数字462
13.1 面向任务的递归函数462
第13章 递归462
概述462
预备知识462
13.1.2 深入递归467
自测题468
13.1.3 陷阱:无穷递归468
13.1.4 用于递归的堆栈469
13.1.6 递归与迭代470
13.1.5 陷阱:堆栈溢出470
13.2.1 返回值的递归函数的泛型471
13.2 面向值的递归函数471
自测题471
13.2.2 编程实例:另一个Powers函数472
自测题474
13.3.1 递归设计技术475
13.3 递归思想475
13.3.2 案例分析:?叉搜索(递归思想示例)476
13.3.3 编程实例:一个递归成员函数482
自测题484
自测题答案485
小结485
编程项目488
14.1 用于算法抽象的模板490
预备知识490
第14章 模板490
概述490
14.1.1 函数模板491
14.1.2 陷阱:编译器的复杂性494
14.1.3 编程实例:一个泛化的排序函数495
自测题495
14.1.5 陷阱:为不恰当的类型使用模板498
14.1.4 编程提示:如何定义模板498
14.2.1 类模板的语法499
14.2 用于数据抽象的模板499
自测题499
14.2.2 编程实例:一个数组类501
自测题504
自测题答案505
小结505
编程项目507
15.1.1 节点509
15.1 节点和链表509
第15章 指针和链表509
概述509
预备知识509
自测题512
15.1.2 链表513
15.1.3 在表头插入一个节点514
15.1.4 陷阱:丢失节点516
15.1.5 搜索链表517
15.1 6指针作为迭代器520
15.1.7 在列表中插入和移除节点520
15.1.8 陷阱:为动态数据结构使用赋值操作符523
自测题523
15.2 一个链表应用程序523
15.2.1 堆栈524
15.2.2 编程实例:一个堆栈类524
自测题527
自测题答案528
小结528
编程项目529
16.1 继承基础532
预备知识532
16.1.1 派生类532
概述532
第16章 继承532
16.1.2 派生类中的构造函数538
16.1.3 陷阱:使用来自基类的私有成员变量540
16.1.4 陷阱:私有成员函数根本不会继承541
16.1.5 protected限定符541
自测题543
16.1.6 重定义成员函数544
16.1.7 重定义与重载的比较546
16.1.8 访问重定义的基函数546
16.2 继承细节547
16.2.1 不继承的函数547
自测题547
16.2.2 派生类中的赋值操作符和拷贝构造函数548
16.2.3 派生类中的析构函数549
自测题549
16.3 多态性550
16.3.1 晚期绑定550
16.3.2 C++中的虚函数551
自测题555
16.3.3 虚函数和扩展类型兼容性555
16.3.4 陷阱:切片问题557
16.3.5 陷阱:不使用虚成员函数558
16.3.6 陷阱:试图对虚成员函数定义不齐全的类进行编译559
16.3.7 编程提示:虚析构函数559
小结560
自测题答案560
自测题560
编程项目563
预备知识566
概述566
17.1 异常处理基础566
第17章 异常处理566
17.1.1 异常处理的一个玩具式例子567
自测题573
17.1.2 定义自己的异常类573
17.1.3 多个throw和catch574
17.1.4 陷阱:首先捕捉较具体的异常576
17.1.5 编程提示:异常类可能微不足道577
17.1.6 在函数中抛出异常577
17.1.7 异常规范579
17.1.8 陷阱:派生类中的异常规范580
自测题580
17.2 用于异常处理编程技术581
17.2.1 抛出异常的时机581
17.2.3 陷阱:嵌套的try-catch块582
17.2.4 陷阱:滥用异常582
17.2.2 陷阱:未捕捉的异常582
17.2.6 测试可用内存583
17.2.7 重新抛出异常583
17.2.5 异常类层次结构583
小结584
自测题答案584
自测题584
编程项目585
附录1 C++关键字586
附录2 操作符的优先级587
附录3 ASCll字符集588
附录4 部分库函数589
附录5 assert语句592
附录6 内联函数593
附录7 重载数据索引方括号594
附录8 this指针595
附录9 将操作符重载为成员操作符597
热门推荐
- 1212119.html
- 2305047.html
- 1054192.html
- 3427041.html
- 611871.html
- 333951.html
- 278695.html
- 1453126.html
- 3504928.html
- 1199703.html
- http://www.ickdjs.cc/book_2885217.html
- http://www.ickdjs.cc/book_1313928.html
- http://www.ickdjs.cc/book_582454.html
- http://www.ickdjs.cc/book_1246720.html
- http://www.ickdjs.cc/book_2833459.html
- http://www.ickdjs.cc/book_1884368.html
- http://www.ickdjs.cc/book_2615860.html
- http://www.ickdjs.cc/book_1173823.html
- http://www.ickdjs.cc/book_2561972.html
- http://www.ickdjs.cc/book_843521.html