给大家带来的一篇关于C++相关的电子书资源,介绍了关于C++、程序设计方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小85.5 MB,John Lakos编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.7。
内容介绍
大规模C++程序设计是专为有经验的C++软件的开发者、系统设计师、软件质量保证人员编写的。适合从事大型软件开发工作(如数据库、操作系统、编译程序和框架)的人员阅读。本书将高层设计概念与特定的C++编程细节结合起来,满足下面两个要求:1、一本面向对象设计的书,尤其侧重于C++编程语言实现方面。2、一本c++程序设计的书,描述如何使用C++编程语言来开发非常大型的系统。
目录
-
译者序
-
前 言
-
第0章 概述 1
-
0.1 从C到C++ 1
-
0.2 使用C++开发大型项目 2
-
0.3 重用 9
-
0.4 质量 10
-
0.5 软件开发工具 12
-
0.6 小结 12
-
第一部分 基 础 知 识
-
第1章 预备知识 15
-
1.1 多文件C++程序 15
-
1.2 typedef声明 22
-
1.3 断言语句 22
-
1.4 编程风格 23
-
1.5 迭代器 28
-
1.6 逻辑设计表示法 34
-
1.7 继承与分层 40
-
1.8 最小化 41
-
1.9 小结 42
-
第2章 基本规则 44
-
2.1 概述 44
-
2.2 成员数据访问 45
-
2.3 全局名字空间 48
-
2.4 包含卫哨 56
-
2.5 冗余包含卫哨 58
-
2.6 文档 61
-
2.7 标识符命名规则 63
-
2.8 小结 64
-
第二部分 物理设计概念
-
第3章 组件 69
-
3.1 组件与类 69
-
3.2 物理设计规则 75
-
3.3 依赖关系 83
-
3.4 隐含依赖 86
-
3.5 提取实际的依赖 91
-
3.6 友元关系 93
-
3.7 小结 99
-
第4章 物理层 101
-
4.1 软件测试的一个比喻 101
-
4.2 一个复杂的子系统 102
-
4.3 测试“好”接口的难度 105
-
4.4 可测性设计 107
-
4.5 隔离测试 109
-
4.6 非循环物理依赖 111
-
4.7 层次编号 112
-
4.8 分层和增量测试 117
-
4.9 测试一个复杂子系统 121
-
4.10 可测性与测试 122
-
4.11 循环物理依赖 123
-
4.12 累积组件依赖 124
-
4.13 物理设计质量 128
-
4.14 小结 132
-
第5章 层次化 134
-
5.1 循环物理依赖的一些来源 134
-
5.2 升级 142
-
5.3 降级 149
-
5.4 不透明指针 158
-
5.5 哑数据 164
-
5.6 冗余 171
-
5.7 回调方法 175
-
5.8 管理者类 184
-
5.9 分解 187
-
5.10 升级封装 199
-
5.11 小结 208
-
第6章 隔离 209
-
6.1 从封装到隔离 210
-
6.2 C++结构和编译时耦合 214
-
6.3 局部隔离技术 223
-
6.4 整体的隔离技术 249
-
6.5 过程接口 275
-
6.6 隔离或不隔离 288
-
6.7 小结 304
-
第7章 包 306
-
7.1 从组件到包 306
-
7.2 注册包前缀 312
-
7.3 包层次化 319
-
7.4 包隔离 323
-
7.5 包群 325
-
7.6 发布过程 328
-
7.7 main程序 335
-
7.8 启动 341
-
7.9 小结 351
-
第三部分 逻辑设计问题
-
第8章 组件架构 355
-
8.1 抽象和组件 355
-
8.2 组件接口设计 356
-
8.3 封装程度 359
-
8.4 辅助实现类 368
-
8.5 小结 372
-
第9章 函数设计 374
-
9.1 函数接口说明 374
-
9.2 在接口中使用的基本类型 406
-
9.3 特殊情况函数 415
-
9.4 小结 421
-
第10章 对象实现 425
-
10.1 成员数据 425
-
10.2 函数定义 430
-
10.3 内存管理 439
-
10.4 在大型项目中使用C++模板 466
-
10.5 小结 477
-
附录A 协议层设计模式 480
-
附录B 实现一个与ANSI C兼容的C++接口 501
-
附录C 一个依赖提取器包/分析器包 509
-
附录D 快速参考 531
-
参考文献 546
学习笔记
Java和C++通过new创建的对象有何区别?
前言 本文我们不去谈int、float、char等基本数据类型,而是用一般的类来说明。因为Java中可以直接通过 int varName 的方式来定义和使用一个基本类型的变量,但对于其它一般类型的对象,必须使用 new 来创建。 因此,为了更一般性地分析,体现两种语言创建对象的差异,我们用自定义的类 Student 进行说明,以下内容均针对一般的类而言。 Java 在 Java 中,我们可以通过如下方式定义变量: Student s; //定义标识符s,没有实际空间Student s = new Student(); //定义s,并绑定到新创建的对象 JVM在进行内存管理时,首先会在栈中给dog分配一个空间,当new Dog();后会在堆中开辟对象的实际空间,然后将dog指向堆中的空间,这……
用C/C++来实现 Node.js 的模块(二)
温故而知新,可以为湿矣 首先请大家记住这个 V8 的在线手册——http://izs.me/v8-docs/main.html。 还记得上次的 building.gyp 文件吗? 复制代码 代码如下: { "targets": [ { "target_name": "addon", "sources": [ "addon.cc" ] } ] } 就像这样,举一反三,如果多几个 *.cc 文件的话就是这样的: "sources": [ "addon.cc", "myexample.cc" ] 上次我们把俩步骤分开了,实际上配置和编译可以放在一起的: $ node-gyp configure build 复习完了吗?没?! 好的,那我们继续吧。 表番 函数参数 现在我们终于要讲参数了呢。 让我们设想有这样一个函数 add(a, b) 代表把 a 和 b 相加返回结果,所以先把函数外框写好: 复制代码 代码如下: #include node.h using namespace ……
以上就是本次介绍的C++电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。
上一篇:编程大讲坛:C#核心开发技术从入门到精通
下一篇:Storm实战:构建大数据实时计算