书籍详情

C++实践之路

C++实践之路

作者:[美]Bartosz Milewski著;周良忠译

出版社:人民邮电出版社

出版时间:2002-01-01

ISBN:9787115105547

定价:¥58.00

购买这本书可以去
内容简介
  本书将带你领略C++作为工业编程语言的强大威力。全书分四个部分共23章。第一部分“语言”(第1章~第5章)从面向对象的角度讲解了C++的相关语言知识。第二部分“技术”(第6章~第13章)介绍了许多实用的工业强度的编程技术,如清理、隐藏实现细节、资源管理、重载运算符等技术。第三部分“Windows”(第14章~第18章)探讨了编写和维护Windows应用程序的相关知识,是本书的特色部分。第四部分“知识扩展”(第19章~第23章)在以前所学知识的基础上进一步对软件设计策略、团队协作开发、平台移植等内容进行简单介绍。附录A提供了第一部分内容中部分练习的答案。附录B介绍了事务处理相关知识。本书适合于不同层次的C++程序员,无论是初学者还是高级程序员都可从中汲取有用的C++知识营养。
作者简介
  译者:周良忠畅销图书《C++实践之路》的译者周良忠,1970年生。本科毕业于武汉化工学院计算机应用专业。1995毕业于中国科学院武汉岩土力学研究所,获硕士学位,1997年获得博士学位。1998年创办云巅工作室(http://www.cloudcrown.com),为个人、中小企业提供专业软件定做服务。近几年开发了多款广受欢迎的共享软件。精通C++、C#、Java、Perl等开发语言。2001年开始从事计算机科技图书的创作和翻译工作,最新翻译力作有《C#PrimerPlus中文版》、《C++实践之路》等。SymbianOS软件开发开发:应用C++开发智能手机应用程序入门>>更多作品
目录
第一部分 语言

第1章 对象和作用域 3
1.1 全局作用域 3
1.2 本地作用域 8
1.3 嵌入对象 14
1.4 继承(Inheritance) 16
1.5 成员函数和接口 18
1.6 成员函数作用域 20
1.7 类型 26
1.7.1 小结 27
1.7.2 练习 28
1.8 抽象数据类型 30

第2章 数组和引用 35
2.1 引用 35
2.2 运算符 40
2.2.1 算术 41
2.2.2 逻辑 42
2.2.3 位逻辑运算符 43
2.3 基于堆栈的计算器 44
2.3.1 外部规范 44
2.3.2 设计 44
2.3.3 简短的实现 45
2.3.4 实现 49
2.3.5 练习 54

第3章 指针 55
3.1 指针的不利之处 55
3.2 指针与引用 56
3.3 指针与数组 57
3.3.1 谈谈汇编 60
3.3.2 练习 61
3.4 指针与动态内存分配 62
3.5 动态数据结构 65
3.5.1 动态堆栈 65
3.5.2 链表 68
3.5.3 字符串表 74
3.5.4 字符串缓冲器 76
3.5.5 表查找 78
3.5.6 哈希表 79
3.5.7 测试程序 81
3.5.8 练习 81

第4章 多态 83
4.1 is-a的意义 83
4.1.1 谈谈实现 84
4.1.2 开销 85
4.2 解析树 86
4.2.1 谈谈C 90
4.2.2 练习 93

第5章 一个小型软件项目 94
5.1 开始一个软件项目 94
5.1.1 设计规范 94
5.1.2 简短实现代码 96
5.1.3 扩展程序片断 98
5.2 扫描器 102
5.3 符号表 107
5.4 存储 109
5.5 函数表 112
5.6 节点 118
5.7 解析器 120
5.8 主函数(main) 127
5.9 聚集初始化 129
5.10 过程化编程 131
5.11 运算符重载 132
5.12 按值传递 133
5.13 值语义 137

第二部分 技术

第6章 清理 147
6.1 输出解耦 147
6.2 与“防错性编程”作斗争 150
6.3 完备性编程的一个实例 152
6.4 补充 156
6.5 改进类之间的通信 157
6.6 更正设计缺陷 161

第7章 隐藏实现细节 168
7.1 使用嵌入类 168
7.2 组合类 170
7.3 使用名字空间组合 171
7.4 在枚举中隐藏常量 173
7.5 在本地变量中隐藏常量 175

第8章 共享 176
8.1 分离全局程序参数 176
8.2 增强包容性 176
8.3 模板 179

第9章 去掉限制 184
9.1 动态数组 184
9.1.1 动态MultiNode 188
9.1.2 动态StringBuffer 189
9.1.3 动态SymbolTable 191
9.1.4 动态Store 192
9.2 标准矢量 193

第10章 资源管理 198
10.1 异常 199
10.2 堆栈展开 201
10.3 资源 205
10.4 资源所有权 206
10.5 访问资源 207
10.6 智能指针 207
10.7 所有权转移:第一次尝试 209
10.8 所有权转移:第二次尝试 210
10.9 安全容器 216
10.10 迭代器 220
10.11 错误传播 222
10.12 转换到资源管理 224
10.13 结论 225

第11章 使用标准模板库 226
11.1 引用计数以及即写即复制 230
11.2 结束限制 236
11.3 去掉C-字符串 237
11.4 探讨流 239

第12章 持久性 243
12.1 Calculator对象 243
12.2 命令解析器 246
12.3 串行化与反串行化 249
12.4 内存中的串行化及反串行化 259
12.5 多重继承 260

第13章 重载运算符new 262
13.1 特定类new 262
13.1.1 缓冲 262
13.1.2 批量分配 266
13.1.3 数组new 269
13.2 全局new 269
13.3 跟踪内存泄漏 271
13.3.1 调用输出 276
13.3.2 方位new 276
13.4 结论 277

第三部分 Windows

第14章 库 281

第15章 编程范例 283
15.1 Hello Windows 284
15.2 封装 290

第16章 通过C++控制Windows 292
16.1 模型-视图-控制器 292
16.1.1 控制器 298
16.1.2 客户代码 299
16.2 异常定义 301
16.3 清理 302

第17章 绘图 304
17.1 应用程序图标 304
17.2 窗口绘图和视图对象 308
17.3 画布 309
17.4 WM_PAINT消息 312
17.5 模型 314
17.6 捕获鼠标 317
17.7 添加颜色和修饰 323

第18章 一个Windows应用程序 331
18.1 把计算器移植到Windows环境下 331
18.2 用户界面 332
18.3 子窗口 333
18.4 Windows控件 334
18.4.1 静态文本 335
18.4.2 编辑控件 335
18.4.3 窗口子类 336
18.4.4 插入计算器 337
18.4.5 列表框控件 337
18.4.6 模块-视图反馈环 338
18.5 命令和菜单 341
18.6 动态菜单 343
18.7 对话框 350

第四部分 知识扩展

第19章 关于软件 359
19.1 复杂性 359
19.2 软件的分形本质 361
19.3 项目的灵活性 363
19.4 程序员的灵活性 364

第20章 设计策略 366
20.1 自顶向下的面向对象设计 366
20.2 用户界面 367
20.3 需求规范 368
20.4 体系结构规范 369

第21章 团队工作 370
21.1 生产效率 370
21.2 团队策略 372

第22章 实现策略 374
22.1 确定全局 374
22.2 自顶向下的面向对象实现方法 376
22.3 程序修改 376
22.4 代码继承 377
22.5 多平台开发 378

第23章 移植 379
23.1 创建一个抽象层 379
23.2 移植计算器 380
23.2.1 消除简单的Windows依赖性 380
23.2.2 特殊Windows依赖性 382
23.3 移植的好处 383

附录
附录A 练习答案 387
附录B 事务处理 404

索引 414
猜您喜欢

读书导航