C++ in Action:Industrial-Strength Programming Techniques

副标题:无

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

分类号:

ISBN:9787115105547

微信扫一扫,移动浏览光盘

简介

  本书将带你领略C++作为工业编程语言的强大威力。   全书分四个部分共23章。第一部分“语言”(第1章~第5章)从面向对象的角度讲解了C++的相关语言知识。第二部分“技术”(第6章~第13章)介绍了许多实用的工业强度的编程技术,如清理、隐藏实现细节、资源管理、重载运算符等技术。第三部分“Windows”(第14章~第18章)探讨了编写和维护Windows应用程序的相关知识,是本书的特色部分。第四部分“知识扩展”(第19章~第23章)在以前所学知识的基础上进一步对软件设计策略、团队协作开发、平台移植等内容进行简单介绍。   附录A提供了第一部分内容中部分练习的答案。附录B介绍了事务处理相关知识。   本书适合于不同层次的C++程序员,无论是初学者还是高级程序员都可从中汲取有用的C++知识营养。   本书特色鲜明,讲解全面,作者为C++程序员提供了经过实践检验的可靠的技术,包括:   有效应用C++中的标准模板库;   C++中的实现策略,包括自顶向下面向对象实现方法;   有C或Java编程背景的程序员学习和使用C++的利与弊;   资源管理以及C++中的异常得理;   用C++改进Windows编程;   如何改写程序以便从Windows移植到Linux等其他平台上;   大型软件项目动态管理——从构思到发布;   马C++开发团队合作。   附带光盘包含了本书涉及的所有源代码,还提供了Code Co-op版本控制系统,它可以运行本书中的所有项目。

目录

第一部分 语言



第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

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

C++ in Action:Industrial-Strength Programming Techniques
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon