面向对象程序设计 C++语言描述 原书第2版PDF电子书下载
- 电子书积分:14 积分如何计算积分?
- 作 者:(美)Richard Johnsonbaugh,(美)Martin Kalin著;蔡宇辉,李军义译
- 出 版 社:北京:机械工业出版社
- 出版年份:2003
- ISBN:7111109473
- 页数:449 页
1.1 面向过程的编程风格与面向对象的编程风格 1
1.1.1 面向过程的编程风格 1
第1章 面向对象编程 1
1.1.2 面向对象的编程风格 2
1.1.3 关系 3
1.1.4 课后练习 3
1.2 类与抽象数据类型 3
1.2.1 信息隐藏 3
1.2.2 封装 4
1.2.3 抽象数据类型 4
1.3 客户/服务器模式与消息传递 5
1 2.4 课后练习 5
1.3.1 客户/服务器模式 6
1.3.2 消息传递与方法调用 6
1.3.3 课后练习 8
1.4 继承与多态 8
1.4.1 继承 8
1.4.2 多态 9
1.4.3 多态与递归 9
1.4.4 课后练习 11
1.5 接口与组件 11
1.5.1 接口 11
1.5.2 组件 12
1.5.3 课后练习 13
第2章 从C到C++ 14
2.1 名字空间 14
2.1.1 课后练习 17
2.2 C++输入/输出简介 18
2.2.1 操纵符 20
2.2.2 混合使用C和C++的输入/输出 23
2.2.3 课后练习 24
2.3 文件 24
2.4 若干重要的C++特性 26
2.4.1 强制类型转换 26
2.3.2 课后练习 26
2.3.1 测试文件的打开状态 26
2.4.2 常数 28
2.4.3 数据类型bool 28
2.4.4 枚举类型 28
2.4.5 定义变量 29
2.4.6 结构 30
2.4.7 课后练习 31
2.5 string类型 31
2.5.1 定义string类型的变量 31
2.5.2 转换为C风格的字符串 31
2.5.4 读写string 32
2.5.3 字符串长度 32
2.5.5 赋值 33
2.5.6 字符串的连接 34
2.5.7 修改字符串 34
2.5.8 提取子串 36
2.5.9 查找 36
2.5.10 字符串比较 37
2.5.11 课后练习 38
2.6 函数 40
2.6.1 函数原型 40
2.6.3 引用 41
2.6.2 main函数 41
2.6.4 引用调用 42
2.6.5 引用返回 43
2.6.6 内联函数 44
2.6.7 数默认参数 45
2.6.8 函数重载 46
2.6.9 函数签名 47
2.6.10 课后练习 48
2.7 new和delete操作符 51
2.7.1 课后练习 53
2.8 例外处理 53
2.8.1 课后练习 56
2.9.3 无名联合 57
2.9.2 无名名字空间 57
2.9 补充材料 57
2.9.1 C++关键字 57
2.9.4 成员选择符 58
2.10 常见编程错误 61
2.11 编程习题 69
第3章 类 72
3.1 类和对象 72
3.1.1 类声明 72
3.1.2 C++的信息隐藏机制 73
3.1.3 成员选择符 74
3.1.5 关键字class和struct的区别 75
3.1.4 类范围 75
3.1.6 类成员函数的定义 76
3.1.7 在程序中使用类 78
3.1.8 课后练习 78
3.2 示例程序:堆栈类 79
3.2.1 问题 79
3.2.2 示例程序的输出 79
3.2.3 解决方案 80
3.2.4 类的实现 81
3.3.1 通过引用来传递和返回对象 82
3.2.7 课后练习 82
3.3 效率和健壮性 82
3.2.6 程序设计建议 82
3.2.5 代码分析 82
3.3.2 const类型参数的对象引用 83
3.3.3 const成员函数 84
3.3.4 对成员函数进行重载以便处理两种类型的字符串 85
3.3.5 课后练习 85
3.4 示例程序:时间标记类 86
3.4.1 问题 86
3.4.2 示例程序的输出 86
3.4.4 类的实现 88
3.4.3 解决方案 88
3.4.5 代码分析 89
3 4.6 程序设计建议 91
3.4.7 课后练习 91
3.5 构造函数与析构函数 91
3.5.1 构造函数 92
3.5.2 对象数组与默认构造函数 93
3.5.3 通过构造函数约束对象的创建 94
3.5.4 拷贝构造函数 95
3.5.5 定义拷贝构造函数 96
3.5.6 禁止通过传值方式传递和返回类对象 100
3.5.8 转型构造函数与隐式类型转换 101
3.5.7 转型构造函数 101
3.5.9 构造函数初始化程序 102
3.5.10 构造函数与操作符new和new[] 103
3.5.11 析构函数 104
3.5.12 课后练习 105
3.6 示例程序:Task类 108
3.6.1 问题 108
3.6.2 示例程序的输出 108
3.6.3 解决方案 109
3.6.4 类的实现 109
3.6.5 代码分析 111
3.7.1 类数据成员 113
3.6.6 课后练习 113
3.7 类数据成员和类成员函数 113
3.7.2 类成员函数 115
3.7.3 在成员函数内定义static变量 116
3.7.4 课后练习 117
3.8 指向对象的指针 117
3.8.1 常量指针this 119
3.8.2 课后练习 120
3.9 常见编程错误 121
3.10 编程习题 126
第4章 继承 131
4.1 引言 131
4.2 基本概念和语法 132
4.1.1 课后练习 132
4.2.1 继承机制下的私有成员 133
4.2.2 改变访问限制 134
4.2.3 名字隐藏 135
4.2.4 间接继承 136
4.2.5 课后练习 137
4.3 示例程序:影片跟踪管理 137
4.3.1 问题 137
4.3.2 示例程序的输出 138
4.3.3 解决方案 138
4.3.4 类的实现 139
4.3.5 代码分析 140
4.3.6 程序设计建议 141
4.4 保护成员 141
4.4.1 课后练习 144
4.5 继承机制下的构造函数与析构函数 145
4.5.1 继承机制下的构造函数 145
4.5.2 派生类构造函数的规则 147
4.5.3 继承机制下的析构函数 150
4.5.4 课后练习 152
4.6 示例程序:设计序列的类层次结构 153
4.6.1 问题 153
4.6.2 示例程序的输入与输出 154
4.6.4 类的实现 157
4.6.3 解决方案 157
4.6.5 代码分析 159
4.7 多继承 161
4.7.1 继承和访问规则 162
4.7.2 虚基类 163
4.7.3 课后练习 164
4.8 补充材料 166
4.8.1 保护继承 166
4.8.2 私有继承 166
4.9 常见编程错误 167
4.10 编程习题 169
5.1 C++中的运行期绑定与编译期绑定 172
第5章 多态 172
5.1.1 C++多态的前提条件 173
5.1.2 虚成员函数继承 176
5.1.3 运行期绑定和虚成员函数表 177
5.1.4 构造函数与析构函数 177
5.1.5 虚析构函数 178
5.1.6 对象成员函数和类成员函数 180
5.1.7 课后练习 180
5.2 示例程序:改进的影片跟踪管理 182
5.2.1 问题 182
5.2.2 示例程序的输入/输出 182
5.2.4 类的实现 184
5.2.3 解决方案 184
5.2.5 代码分析 187
5.2.6 程序设计建议 189
5.2.7 课后练习 189
5.3 重载、覆盖和遮蔽 189
5.3.1 重载 189
5.3.2 覆盖 190
5.3.3 遮蔽 192
5.3.4 名字共享 193
5.3.5 课后练习 194
5.4 抽象基类 196
5.4.1 抽象基类和纯虚成员函数 196
5.4.3 抽象基类的使用 198
5.4.2 定义纯虚成员函数的限制 198
5.4.4 微软的IUnknown接口 199
5.4.5 课后练习 199
5.5 运行期类型识别 200
5.5.1 dynamic_cast操作符 200
5.5.2 dynamic_cast的规则 205
5.5.3 dynamic_cast与static_cast小结 205
5.5.4 typeid操作符 205
5.5.5 扩展RTTI 206
5.5.6 课后练习 206
5.7 常见编程错误 208
5.6 补充材料 208
5.6.1 强多态和弱多态 208
5.8 编程习题 211
第6章 操作符重载 215
6.1 基本操作符重载 215
6.1.1 操作符的优先级和语法 217
6.1.2 课后练习 218
6.2.2 示例程序的输出 219
6.2.3 解决方案 219
6.2.4 类的实现 219
6.2.1 问题 219
6.2 示例程序:复数类 219
6.2.5 代码分析 221
6.2.6 课后练习 222
6.3 用顶层函数进行操作符重载 223
6.3.1 课后练习 226
6.4 friend函数 227
6.4.1 课后练习 228
6.5 输入与输出操作符的重载 229
6.5.1 课后练习 230
6.6 赋值操作符的重载 231
6.6.1 课后练习 233
6.7.1 下标操作符的重载 234
6.7 特殊操作符的重载 234
6.7.2 函数调用操作符的重载 237
6.7.3 自增与自减操作符的重载 239
6.7.4 转型操作符 241
6.7.5 课后练习 243
6.8 示例程序:关联式数组 244
6.8.1 问题 244
6.8.2 示例程序的输入与输出 244
6.8.3 解决方案 245
6.8.4 类的实现 246
6.8.5 代码分析 247
6.9 内存管理操作符 248
6.8.6 课后练习 248
6.9.1 课后练习 251
6.10 补充材料 252
6.10.1 friend类 252
6.11 常见编程错误 252
6.12 编程习题 255
第7章 模板与标准模板库 257
7.1 模板的基本知识 257
7.1.1 模板实例 260
7.1.2 参数表中的模板类 261
7.1.3 模板的函数式参数 262
7.1.4 课后练习 264
7.2 示例程序:模板堆栈类 265
7.2.1 问题 265
7.2.2 示例程序的输出 265
7.2.3 解决方案 265
7.2.4 类的实现 266
7.2.5 代码分析 268
7.2.6 程序设计建议 269
7.2.7 断言 270
7.3.2 STL的优越性 271
7.3.1 容器、算法和迭代器 271
7.3 标准模板库STL 271
7.2.8 课后练习 271
7.3.3 容器基础知识 273
7.3.4 基本序列式容器:vector、deque和list 273
7.3.5 vector、deque和list的效率比较 276
7.3.6 基本的关联式容器:set、multiset、map和multimap 276
7.3.7 容器适配器 278
7.3.8 其他容器 281
7.3.9 STL算法 284
7.3.10 其他STL构件 288
7.3.11 课后练习 289
7.4.1 问题 290
7.4.2 示例程序的输入与输出 290
7.4 示例程序:证券业绩报表 290
7.4.3 解决方案 293
7.4.4 类的实现 293
7.4.5 代码分析 296
7.5 附加材料 298
7.5.1 模板类与继承 298
7.6 常见编程错误 299
7.7 编程习题 300
8.1 概况 304
8.1.1 输入输出库中的流类层次 304
第8章 C++输入输出类层次 304
8.1.2 输入输出库中的缓冲类层次 305
8.1.3 缓冲类层次与流类层次的关系 306
8.1.4 模板的使用 307
8.1.5 课后练习 307
8.2 ios_base和basic_ios类 308
8.2.1 ios_base 308
8.2.2 basic_ios 312
8.2.3 例外处理 313
8.2.4 课后练习 314
8.3 高层输入输出类 315
8.3.1 basic_istream 315
8.3.2 basic_ostream 319
8.3.4 课后练习 321
8.3.3 basic_iostream 321
8.4 操纵器 322
8.4.1 设计不带参数的操纵器 322
8.4.2 设计带参数的操纵器 324
8.4.3 课后练习 325
8.5 文件输入输出类 325
8.5.1 basic ofstream 325
8.5 2 basic_ifstream 327
8.5 3 basic fstream 328
8.6.1 问题 329
8.6.2 示例程序的输入与输出 329
8.6 示例程序:随机存取文件类 329
8.5.4 课后练习 329
8.6.3 解决方案 330
8.6.4 类的实现 332
8.6.5 代码分析 339
8.7 字符流输入/输出类 344
8.7.1 basic ostringstream 344
8.7.2 basic istringstream 345
8.7.3 basic stringstream 346
8.8.3 类的实现 347
8.8.2 解决方案 347
8.8.1 问题 347
8.8 示例程序:高层拷贝函数 347
8.7.4 课后练习 347
8.8.4 代码分析 348
8.8.5 课后练习 349
8.9 缓冲区类 349
8.9.1 basic streambuf 349
8.9.2 basic filebuf 350
8.9.3 basic stringbuf 355
8.9.4 课后练习 356
8.10 补充材料 356
8.11 常见编程错误 357
8.12 编程习题 358
第9章 MFC中的面向对象编程 360
9.1 用MFC进行Windows程序设计 360
9.1.1 MFC编程的代码生成器 361
9.1.2 课后练习 362
9.2 MFC中的文档/视图结构 362
9.2.1 文档序列化 365
9.2.2 课后练习 366
9.3 示例程序:文档序列化 366
9.3.1 问题 366
9.3.2 示例程序的输出 366
9.3.4 类的实现 367
9.3.3 解决方案 367
9.3.5 代码分析 375
9.3.6 课后练习 378
9.4 COM 378
9.4.1 可更改的服务器和不可变更的接口 379
9.4.2 COM接口的层次 380
9.4.3 IDispatch接口 380
9.4.4 COM程序的类型 381
9.4.5 VC++对COM的支持 381
9.4.6 COM和OLE 382
9.4.7 课后练习 382
9.5.2 示例程序的输出 383
9.5.3 解决方案 383
9.5 示例程序:自动化服务器与控制器 383
9.5.1 问题 383
9.5.4 类的实现 384
9.5.5 代码分析 391
9.5.6 引用计数问题 393
9.5.7 课后练习 393
9.6 补充材料 394
9.7 编程习题 394
附录A ASCⅡ表 396
附录B 用到的C++函数和成员函数 399
附录C 奇数编号练习的提示及答案 428
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《妈妈365天英语》(韩)申艺莉著 2014
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019