![C++语言的设计和演化[按需印刷]](http://images.china-pub.com/ebook/5217/zcover.jpg)
| 在本书中,作者还从实践的角度出发,讨论了许多与程序设计语言、系统程序设计、面向对象的技术和方法、软件系统的设计和实现技术等有关的问题,值得每一个关心这些领域及相关问题的计算机工作者和学生们阅读参考。 |
出版者的话 专家指导委员会 译者序 前言 致读者 引言 怎样读这本书 c++ 时间表 关注使用和用户们 程序设计语言 第 一 部 分 第1章 c++的史前时代2 1.1 simula和分布式系统2 1.2 c与系统程序设计4 1.3 一般性的背景4 第2章 带类的c7 2.1 带类的c的诞生7 2.2 特征概览8 2.3 类9 .2.4 运行时的效率11 2.5 连接模型13 2.5.1 纯朴的实现15 2.5.2 对象布局模型16 2.6 静态类型检查17 2.6.1 窄转换18 2.6.2 警告的使用19 2.7 为什么用c20 2.8 语法问题22 2.8.1 c声明的语法22 2.8.2 结构标志与类型名23 2.8.3 语法的重要性24 2.9 派生类25 2.9.1 没有虚函数时的多态性25 2.9.2 没有模板时的容器类26 2.9.3 对象布局模型27 2.9.4 回顾28 2.10 保护模型28 2.11 运行时的保证31 2.11.1 建构函数与析构函数31 2.11.2 存储分配和建构函数31 2.11.3 调用函数和返回函数32 2.12 次要特征32 2.12.1 赋值的重载33 2.12.2 默认参数33 2.13 考虑过,但是没有提供的特征34 2.14 工作环境35 第3章 c++的诞生38 3.1 从带类的c到c++38 3.2 目标39 3.3 cfront40 3.3.1 生成c41 3.3.2 分析c++42 3.3.3 连接问题43 3.3.4 cfront发布43 3.4 语言特征45 3.5 虚函数45 3.5.1 对象布局模型47 3.5.2 覆盖和虚函数匹配49 3.5.3 基成员的遮蔽49 3.6 重载50 3.6.1 基本重载51 3.6.2 成员和友元52 3.6.3 运算符函数54 3.6.4 效率和重载55 3.6.5 变化和新运算符56 3.7 引用56 3.8 常量59 3.9 存储管理61 3.10 类型检查62 3.11 次要特征63 3.11.1 注释63 3.11.2 建构函数的记法63 3.11.3 量化64 3.11.4 全局变量的初始化65 3.11.5 声明语句67 3.12 与经典c的关系69 3.13 语言设计的工具71 3.14 《c++程序设计语言》(第1版)73 3.15 有关“什么是”的论文73 第4章 c++语言设计规则76 4.1 规则和原理76 4.2 一般性规则77 4.3 设计支持规则80 4.4 语言的技术性规则82 4.5 低级程序设计支持规则85 4.6 结束语86 第5章 1985—1993年表87 5.1 引言87 5.2 release 2.087 5.3 《带标注的c++参考手册》90 5.4 ansi和iso标准化91 第6章 标准化95 6.1 什么是标准95 6.1.1 实现细节96 6.1.2 现实的检查97 6.2 委员会如何运作97 6.3 净化99 6.3.1 查找问题99 6.3.2 临时量的生存期103 6.4 扩充106 6.4.1 评价准则108 6.4.2 状况110 6.4.3 好的扩充问题111 6.4.4 一致性112 6.5 扩充建议实例112 6.5.1 关键词参数113 6.5.2 受限指针116 6.5.3 字符集117 第7章 关注和使用120 7.1 关注和使用的爆炸性增长120 7.1.1 c++市场的缺位121 7.1.2 会议121 7.1.3 杂志和书籍122 7.1.4 编译程序122 7.1.5 工具和环境123 7.2 c++的教与学124 7.3 用户和应用128 7.3.1 早期用户129 7.3.2 后来的用户129 7.4 商业竞争130 7.4.1 传统语言130 7.4.2 更新一些的语言131 7.4.3 期望和看法132 第8章 库134 8.1 引言134 8.2 c++库设计134 8.2.1 库设计的折衷135 8.2.2 语言特征和库的构造135 8.2.3 处理库的多样性135 8.3 早期的库136 8.3.1 i/o流库137 8.3.2 并行支持139 8.4 其他库142 8.4.1 基础库142 8.4.2 持续性和数据库143 8.4.3 数值库143 8.4.4 专用库143 8.5 一个标准库144 第9章 展望146 9.1 引言146 9.2 回顾146 9.2.1 c++在其预期领域取得了成功吗147 9.2.2 c++是不是一个统一的语言147 9.2.3 什么是最大失误150 9.3 仅仅是一座桥梁吗150 9.3.1 在一个很长的时期里我们还需要这座 桥梁151 9.3.2 如果c++是答案,那么问题是什么151 9.4 什么能够使c++更有效154 9.4.1 稳定性和标准154 9.4.2 教育和技术154 9.4.3 系统方面的问题155 9.4.4 在文件和语法之外156 9.4.5 小结156 第 二 部 分 第10章 存储管理160 10.1 引言160 10.2 将存储分配和初始化分离161 10.3 数组分配162 10.4 放置162 10.5 存储释放问题163 10.6 存储器耗尽166 10.7 自动废料收集167 10.7.1 可选的废料收集167 10.7.2 可选的废料收集应该是什么样 子的168 第11章 重载170 11.1 引言170 11.2 重载的解析170 11.2.1 细粒度解析171 11.2.2 歧义控制172 11.2.3 空指针175 11.2.4 overload关键字176 11.3 类型安全的连接177 11.3.1 重载和连接178 11.3.2 c++连接的一种实现179 11.3.3 回顾180 11.4 对象的建立和复制181 11.4.1 对复制的控制182 11.4.2 对分配的控制182 11.4.3 对派生的控制183 11.4.4 按成员复制184 11.5 记法约定185 11.5.1 灵巧指针185 11.5.2 灵巧引用186 11.5.3 增量和减量的重载189 11.5.4 重载-]*190 11.5.5 重载逗号运算符190 11.6 给c++增加运算符191 11.6.1 指数运算符191 11.6.2 用户定义运算符193 11.6.3 复合运算符194 11.7 枚举195 11.7.1 基于枚举的重载196 11.7.2 布尔类型197 第12章 多重继承198 12.1 引言198 12.2 普通基类198 12.3 虚基类199 12.4 对象布局模型203 12.4.1 虚基布局205 12.4.2 虚基和强制206 12.5 方法组合207 12.6 有关多重继承的论战208 12.7 委托210 12.8 重命名211 12.9 基和成员初始式213 第13章 类概念的精炼215 13.1 引言215 13.2 抽象类215 13.2.1 为处理错误而用的抽象类215 13.2.2 抽象类型217 13.2.3 语法218 13.2.4 虚函数和建构函数219 13.3 const成员函数221 13.3.1 强制去掉const221 13.3.2 const定义的精炼222 13.3.3 易变性与强制223 13.4 静态成员函数224 13.5 嵌套的类225 13.6 inherited::226 13.7 放松覆盖规则228 13.8 多重方法231 13.9 保护成员235 13.10 改进代码生成236 13.11 到成员的指针236 第14章 强制239 14.1 主要扩充239 14.2 运行时类型信息239 14.2.1 问题240 14.2.2 dynamic_cast运算符241 14.2.3 rtti的使用和误用245 14.2.4 为什么提供一个“危险特征”247 14.2.5 typeid()运算符248 14.2.6 对象布局模型251 14.2.7 一个例子:简单的i/o对象252 14.2.8 考虑过的其他选择254 14.3 强制的一种新记法257 14.3.1 问题257 14.3.2 static_cast运算符259 14.3.3 reinterpret_cast运算符260 14.3.4 const_cast运算符262 14.3.5 新风格强制的影响263 第15章 模板266 15.1 引言266 15.2 模板266 15.3 类模板269 15.4 对模板参数的限制271 15.4.1 通过派生加以限制272 15.4.2 通过使用加以限制272 15.5 避免代码重复273 15.6 函数模板275 15.6.1 函数模板参数的推断275 15.6.2 描述函数模板的参数277 15.6.3 函数模板的重载278 15.7 语法280 15.8 组合技术282 15.8.1 表述实现的策略283 15.8.2 描述顺序关系283 15.9 模板类之间的关系285 15.9.1 继承关系285 15.9.2 转换287 15.9.3 成员模板288 15.10 模板的实例化289 15.10.1 显式的实例化290 15.10.2 实例化点291 15.10.3 专门化296 15.10.4 查找模板定义298 15.11 模板的作用299 15.11.1 实现与界面的分离300 15.11.2 灵活性和效率301 15.11.3 对c++其他部分的影响301 第16章 异常处理303 16.1 引言303 16.2 异常处理的目标303 16.3 语法305 16.4 结组305 16.5 资源管理306 16.6 唤醒与终止309 16.7 非同步事件311 16.8 多层传播312 16.9 静态检查312 16.10 不变式314 第17章 名字空间316 17.1 引言316 17.2 问题317 17.3 解决方案的思想318 17.4 一个解决方案:名字空间320 17.4.1 有关使用名字空间的观点321 17.4.2 使名字空间投入使用322 17.4.3 名字空间的别名323 17.4.4 利用名字空间管理版本问题324 17.4.5 细节326 17.5 对于类的影响331 17.5.1 派生类331 17.5.2 使用基类332 17.5.3 清除全局的static333 17.6 与c语言的兼容性334 第18章 c语言预处理器336 参考文献339 索引347 |
商品评论(0条)