计算机
类型
8.4
豆瓣评分
可以朗读
语音朗读
436千字
字数
2018-12-01
发行日期
展开全部
主编推荐语
全书18章,分为C++发展史及重要特性两部分,附有专业术语索引。
内容简介
全书共18章,分两大部分,其中第1部分(第1~9章)分别介绍了C++的史前时代、C with Classes、C++的诞生、C++语言设计规则、1985—1993年表、标准化、关注和使用、库、展望;第2部分(第10~18章)分别介绍了存储管理、重载、多重继承、类概念的精练、强制转换、模板、异常处理、名称空间、C语言预处理器。为便于查找与学习,全书最后附有专业术语索引。
目录
- 版权信息
- 版权
- 版权声明
- 内容提要
- 译者序
- 前言
- 资源与支持
- 第0章 致读者
- 引言
- 怎样阅读这本书
- C++时间表
- 关注使用和用户们
- 程序设计语言
- 参考文献
- 第一部分
- 第1章 C++的史前时代
- 1.1 Simula和分布式系统
- 1.2 C与系统程序设计
- 1.3 一般性的背景
- 第2章 C with Classes
- 2.1 C with Classes的诞生
- 2.2 特征概览
- 2.3 类
- 2.4 运行时的效率
- inline机制
- 2.5 连接模型
- 2.5.1 纯朴的实现
- 2.5.2 对象连接模型
- 2.6 静态类型检查
- 2.6.1 窄转换
- 2.6.2 警告的使用
- 2.7 为什么是C
- 2.8 语法问题
- 2.8.1 C声明的语法
- 2.8.2 结构标志与类型名
- 2.8.3 语法的重要性
- 2.9 派生类
- 2.9.1 没有虚函数时的多态性
- 2.9.2 没有模板时的容器类
- 2.9.3 对象的布局模型
- 2.9.4 回顾
- 2.10 保护模型
- 2.11 运行时保证
- 2.11.1 构造函数与析构函数
- 2.11.2 存储分配和构造函数
- 2.11.3 调用函数和返回函数
- 2.12 次要特征
- 2.12.1 赋值的重载
- 2.12.2 默认实参
- 2.13 考虑过,但是没提供的特征
- 2.14 工作环境
- 第3章 C++的诞生
- 3.1 从C with Classes到C++
- 3.2 目标
- 3.3 Cfront
- 3.3.1 生成C
- 3.3.2 分析C++
- 3.3.3 连接问题
- 3.3.4 Cfront发布
- 3.4 语言特征
- 3.5 虚函数
- 3.5.1 对象布局模型
- 3.5.2 覆盖和虚函数匹配
- 3.5.3 基成员的遮蔽
- 3.6 重载
- 3.6.1 基本重载
- 3.6.2 成员和友元
- 3.6.3 运算符函数
- 3.6.4 效率和重载
- 3.6.5 变化和新运算符
- 3.7 引用
- 左值和右值
- 3.8 常量
- 3.9 存储管理
- 3.10 类型检查
- 3.11 次要特征
- 3.11.1 注释
- 3.11.2 构造函数的记法
- 3.11.3 限定
- 3.11.4 全局变量的初始化
- 3.11.4.1 动态初始化的问题
- 3.11.4.2 绕过顺序依赖性
- 3.11.4.3 内部类型的动态初始化
- 3.11.5 声明语句
- 3.11.5.1 for语句里的声明
- 3.11.5.2 条件语句里的声明
- 3.12 与经典C的关系
- 3.13 语言设计的工具
- 3.14 《C++程序设计语言》(第1版)
- 3.15 有关“什么是”的论文
- 第4章 C++语言设计规则
- 4.1 规则和原理
- 4.2 一般性规则
- 4.3 设计支持规则
- 4.4 语言的技术性规则
- 4.5 低级程序设计支持规则
- 4.6 最后的话
- 第5章 1985—1993年年表
- 5.1 引言
- 5.2 Release 2.0
- 特征概览
- 5.3 带标注的参考手册(ARM)
- 特征概览
- 5.4 ANSI和ISO标准化
- 特征概览
- 第6章 标准化
- 6.1 什么是标准
- 6.1.1 实现细节
- 6.1.2 现实的检查
- 6.2 委员会如何运作
- C++ 标准化委员会里有哪些人
- 6.3 净化
- 6.3.1 查找问题
- 6.3.1.1 ARM名字查找规则
- 6.3.1.2 为什么允许前向引用
- 6.3.1.3 ANSI/ISO名字查找规则
- 6.3.2 临时量的生存期
- 6.4 扩充
- 6.4.1 评价准则
- 6.4.2 状况
- 6.4.3 好扩充的问题
- 6.4.4 一致性
- 6.5 扩充建议的例子
- 6.5.1 关键词实参
- 关键词实参的变形
- 6.5.2 受限指针
- 6.5.3 字符集
- 6.5.3.1 受限字符集
- 6.5.3.2 扩充字符集
- 第7章 关注和使用
- 7.1 关注和使用的爆炸性增长
- 7.1.1 C++ 市场的缺位
- 7.1.2 会议
- 7.1.3 杂志和书籍
- 7.1.4 编译器
- 7.1.5 工具和环境
- 7.2 C++的教与学
- 7.3 用户和应用
- 7.3.1 早期用户
- 7.3.2 后来的用户
- 7.4 商业竞争
- 7.4.1 传统语言
- 7.4.2 更新一些的语言
- 7.4.3 期望和看法
- 第8章 库
- 8.1 引言
- 8.2 C++ 库设计
- 8.2.1 库设计的折中
- 8.2.2 语言特征和库的构造
- 8.2.3 处理库的多样性
- 8.3 早期的库
- 8.3.1 流I/O库
- 8.3.2 并行支持
- 8.3.2.1 一个作业实例
- 8.3.2.2 锁
- 8.4 其他库
- 8.4.1 基础库
- 8.4.2 持续性和数据库
- 8.4.3 数值库
- 8.4.4 专用库
- 8.5 一个标准库
- 第9章 展望
- 9.1 引言
- 9.2 回顾
- 9.2.1 C++ 在其预期领域取得了成功吗
- 9.2.2 C++ 是不是一个统一的语言
- 9.2.2.1 什么东西本不该而且也可以不是现在的样子
- 9.2.2.2 什么东西本应该排除在外
- 9.2.2.3 什么东西本应该加进来
- 9.2.3 什么是最大失误
- 9.3 仅仅是一座桥梁吗
- 9.3.1 在一个很长的时期里,我们还需要这座桥梁
- 9.3.2 如果C++ 是答案,那么问题是什么
- 9.3.2.1 低层系统程序设计
- 9.3.2.2 高层系统程序设计
- 9.3.2.3 嵌入式系统
- 9.3.2.4 数值/科学计算
- 9.3.2.5 通用应用程序设计
- 9.3.2.6 混合系统
- 9.4 什么能使C++更有效
- 9.4.1 稳定性和标准
- 9.4.2 教育和技术
- 9.4.3 系统方面的问题
- 9.4.4 在文件和语法之外
- 9.4.5 总结
- 第二部分
- 第10章 存储管理
- 10.1 引言
- 10.2 将存储分配和初始化分离
- 10.3 数组分配
- 10.4 放置
- 10.5 存储释放问题
- 数组的释放
- 10.6 存储器耗尽
- 10.7 自动废料收集
- 10.7.1 可选的废料收集
- 10.7.2 可选择的废料收集应该是什么样子的
- 第11章 重载
- 11.1 引言
- 11.2 重载的解析
- 11.2.1 细粒度解析
- 11.2.2 歧义控制
- 11.2.3 空指针
- 11.2.4 overload关键字
- 11.3 类型安全的连接
- 11.3.1 重载和连接
- 11.3.2 C++连接的一种实现
- 11.3.3 回顾
- 11.4 对象的建立和复制
- 11.4.1 对复制的控制
- 11.4.2 对分配的控制
- 11.4.3 对派生的控制
- 11.4.4 按成员复制
- 11.5 记法约定
- 11.5.1 灵巧指针
- 11.5.2 灵巧引用
- 11.5.3 增量和减量的重载
- 11.5.4 重载 ->*
- 11.5.5 重载逗号运算符
- 11.6 给C++ 增加运算符
- 11.6.1 指数运算符
- 11.6.2 用户定义运算符
- 11.6.3 复合运算符
- 11.7 枚举
- 11.7.1 基于枚举的重载
- 11.7.2 布尔类型
- 第12章 多重继承
- 12.1 引言
- 12.2 普通基类
- 12.3 虚基类
- 虚基类和虚函数
- 12.4 对象布局模型
- 12.4.1 虚基布局
- 12.4.2 虚基类和强制
- 12.5 方法组合
- 12.6 有关多重继承的论战
- 12.7 委托
- 12.8 重命名
- 12.9 基类和成员的初始式
- 第13章 类概念的精炼
- 13.1 引言
- 13.2 抽象类
- 13.2.1 为处理错误而用的抽象类
- 13.2.2 抽象类型
- 13.2.3 语法
- 13.2.4 虚函数和构造函数
- 13.2.4.1 调用一个纯虚函数
- 13.2.4.2 基类优先的构造
- 13.2.4.3 换个方式会怎样
- 13.3 const成员函数
- 13.3.1 强制去掉const
- 13.3.2 const定义的精炼
- 13.3.3 可变性与强制
- 13.4 静态(static)成员函数
- 13.5 嵌套的类
- 13.6 Inherited::
- 13.7 放松覆盖规则
- 放松参数规则
- 13.8 多重方法
- 绕过多重方法
- 13.9 保护成员
- 13.10 改进代码生成
- 13.11 到成员的指针
- 第14章 强制
- 14.1 主要扩充
- 14.2 运行时类型信息
- 14.2.1 问题
- 14.2.2 dynamic_cast运算符
- 14.2.2.1 语法
- 14.2.2.2 何时能使用动态强制
- 14.2.2.3 从虚基类出发的强制
- 14.2.3 RTTI的使用和误用
- 14.2.4 为什么提供一个“危险特征”
- 14.2.5 typeid()运算符
- 14.2.5.1 类type_info
- 14.2.5.2 扩充的类型信息
- 14.2.6 对象布局模型
- 14.2.7 一个例子:简单的对象I/O
- 14.2.8 考虑过的其他选择
- 14.2.8.1 元对象
- 14.2.8.2 类型查询运算符
- 14.2.8.3 类型关系
- 14.2.8.4 多重方法
- 14.2.8.5 非受限方法
- 14.2.8.6 带检查的初始化
- 14.3 强制的一种新记法
- 14.3.1 问题
- 14.3.2 static_cast运算符
- 静态强制和动态强制
- 14.3.3 reinterpret_cast运算符
- 14.3.4 const_cast运算符
- 与const保护有关的问题
- 14.3.5 新风格强制的影响
- 14.3.5.1 老风格强制
- 14.3.5.2 隐式窄转换
- 14.3.5.3 构造函数调用的记法
- 14.3.5.4 新强制的使用
- 第15章 模板
- 15.1 引言
- 15.2 模板
- 15.3 类模板
- 非类型模板参数
- 15.4 对模板参数的限制
- 15.4.1 通过派生加以限制
- 15.4.2 通过使用加以限制
- 15.5 避免代码重复
- 15.6 函数模板
- 15.6.1 函数模板参数的推断
- 15.6.2 描述函数模板的参数
- 15.6.3 函数模板的重载
- 模板里的条件
- 15.7 语法
- 15.8 组合技术
- 15.8.1 表述实现策略
- 15.8.2 描述顺序关系
- 15.9 模板类之间的关系
- 15.9.1 继承关系
- 15.9.2 转换
- 15.9.3 成员模板
- 15.10 模板的实例化
- 15.10.1 显式的实例化
- 15.10.2 实例化点
- 15.10.2.1 定义“依赖于T”
- 15.10.2.2 歧义性
- 15.10.3 专门化
- 15.10.4 查找模板定义
- 15.11 模板的作用
- 15.11.1 实现与界面的分离
- 15.11.2 灵活性和效率
- 15.11.3 对C++ 其他部分的影响
- 第16章 异常处理
- 16.1 引言
- 16.2 目标和假设
- 16.3 语法
- 16.4 结组
- 16.5 资源管理
- 构造函数里出错
- 16.6 唤醒与终止
- 迂回地实现唤醒
- 16.7 非同步事件
- 16.8 多层传播
- 16.9 静态检查
- 实现问题
- 16.10 不变式
- 第17章 名字空间
- 17.1 引言
- 17.2 问题
- 迂回方法
- 17.3 解决方案的思想
- 17.4 一个解决方案:名字空间
- 17.4.1 有关使用名字空间的观点
- 17.4.2 使名字空间投入使用
- 17.4.3 名字空间的别名
- 17.4.4 利用名字空间管理版本问题
- 17.4.5 细节
- 17.4.5.1 方便性与安全性
- 17.4.5.2 全局作用域
- 17.4.5.3 重载
- 17.4.5.4 嵌套的名字空间
- 17.4.5.5 名字空间是开放的
- 17.5 对于类的影响
- 17.5.1 派生类
- 17.5.2 使用基类
- 17.5.3 清除全局的static
- 17.6 与C语言的兼容性
- 第18章 C语言预处理器
- Cpp
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。