C++实践之路(附光盘)
分类: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: 美.迈维尔斯基著周良忠译
出 版 社: 人民邮电出版社
出版时间: 2002-11-1字数: 683千版次: 1版1次页数: 421印刷时间: 2002-11-1开本:印次:纸张: 胶版纸I S B N : 9787115105547包装: 平装内容简介
全书分四个部分共23章。第一部分“语言”从面向对象的角度讲解了C++的相关语言知识。第二部分“技术”介绍了许多实用的工业强度的编程技术,如清理、隐藏实现细节、资源管理、重载运算符等技术。第三部分“Windows”探讨了编写和维护Windows应用程序的相关知识,是本书的特色部分。第四部分“知识扩展”在以前所学知识的基础上进一步对软件设计策略、团队协作开发、平台移植等内容进行简单介绍。附录A提供了第一部分内容中练习的答案。附录B介绍隔务处理相关知识。
作者简介
Bartosz Milewski是Reliable Software公司的总裁,Reliable Software公司是一家国程序员制造高质量开发工具的公司。在过去几年间,Bartosz Milewski在多家知名杂志发表了大量技术文章。在微软工程工作的8年期间,他担任Windows2000中Content Index组件的开发主管,他曾经在波兰的Wroclaw大学讲授C++编程课程,而且他获得了Wroclaw大学的理论物理学博士学位。
目录
第一部分语言
第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.1is-a的意义83
4.1.1谈谈实现84
4.1.2开销85
4.2解析树86
4.2.1谈谈C90
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动态MultiNode188
9.1.2动态StringBuffer189
9.1.3动态SymbolTable191
9.1.4动态Store192
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.1Calculator对象243
12.2命令解析器246
12.3串行化与反串行化249
12.4内存中的串行化及反串行化259
12.5多重继承260
第13章重载运算符new262
13.1特定类new262
13.1.1缓冲262
13.1.2批量分配266
13.1.3数组new269
13.2全局new269
13.3跟踪内存泄漏271
13.3.1调用输出276
13.3.2方位new276
13.4结论277
第三部分Windows
第14章库281
第15章编程范例283
15.1Hello Windows284
15.2封装290
第16章通过C++控制Windows292
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.4WM_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.4Windows控件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
媒体评论