C++沉思录
下单以备注书名为准:《C++沉思录》,正版全新可开发票
¥
52.4
5.9折
¥
89
全新
库存9件
作者 [美]安德鲁·凯尼格(Andrew Koenig);芭芭拉·摩尔(Barbara)
出版社 人民邮电出版社
出版时间 2020-08
版次 1
装帧 平装
上书时间 2024-10-21
商品详情
品相描述:全新
图书标准信息
作者
[美]安德鲁·凯尼格(Andrew Koenig);芭芭拉·摩尔(Barbara)
出版社
人民邮电出版社
出版时间
2020-08
版次
1
ISBN
9787115521262
定价
89.00元
装帧
平装
开本
16开
页数
335页
字数
476千字
【内容简介】
《C++沉思录》基于作者在知名技术杂志发表的技术文章、世界各地发表的演讲以及斯坦福大学的课程讲义整理、写作而成,融聚了作者10多年C++程序生涯的真知灼见。 《C++沉思录》分为6篇,共32章,分别对C++语言的历史和特点、类和继承、STL与泛型编程、库的设计等几大技术话题进行了详细而深入的讨论,细微之处几乎涵盖了C++所有的设计思想和技术细节。本书通过精心挑选的实例,向读者传达先进的程序设计方法和理念。 《C++沉思录》适合有一定经验的C++程序员阅读学习,可以帮助他们提升技术能力,成为C++程序设计的高手。
【作者简介】
Andrew Koenig,AT&T大规模程序研发部(前贝尔实验室)成员。他从1986年开始从事C语言的研究,1977年加入贝尔实验室。他编写了一些早期的类库,并在1988年组织召开了第一个具有相当规模的C++会议。在ISO/ANSI C++委员会成立的1989年,他就加入了该委员会,并一直担任项目编辑。他已经发表了100多篇C++方面的论文,并在Addsion-Wesley出版了C Traps and Pitfalls 一书(中文版名为《C缺陷与陷阱》,由人民邮电出版社出版),还应邀到世界各地演讲。 Barbara Moo,AT&T网络体系结构部门负责人。在1983年加入贝尔实验室不久,她开始从事Fortran 77编译器的研究工作,这是第一个用C++编写的商业产品。她一直负责AT&T的C++编译器项目,直到AT&T卖掉它的软件业务。她还为SIG会议、Lund技术学院和斯坦福大学提供辅导课程。 Anderw Koenig和Barbara Moo不仅有着多年的C++开发、研究和教学经验,而且还亲身参与了C++的演化和变革,对C++的变化和发展产生了重要的影响。
【目录】
第0章 序幕1 0.1 第 一次尝试 1 0.2 不用类来实现 4 0.3 为什么用C++更简单 5 0.4 一个更大的例子 5 0.5 小结 6 第 一篇 动 机 第 1章 为什么我用C++ 9 1.1 问题 9 1.2 历史背景 10 1.3 自动软件发布 10 1.4 进入C++ 13 1.5 重复利用的软件 17 1.6 后记 18 第 2章 为什么用C++工作 19 2.1 小项目的成功 19 2.2 抽象 21 2.3 机器应该为人服务 23 第3章 生活在现实世界中 25 第二篇 类和继承 第4章 类设计者的核查表 31 第5章 代理类 39 5.1 问题 39 5.2 经典解决方案 40 5.3 虚复制函数 41 5.4 定义代理类 42 5.5 小结 44 第6章 句柄:第 一部分 45 6.1 问题 45 6.2 一个简单的类 46 6.3 绑定到句柄 47 6.4 获取对象 48 6.5 简单的实现 48 6.6 引用计数型句柄 49 6.7 写时复制 51 6.8 讨论 52 第7章 句柄:第二部分 55 7.1 回顾 56 7.2 分离引用计数 57 7.3 对引用计数的抽象 58 7.4 存取函数和写时复制 61 7.5 讨论 61 第8章 一个面向对象程序范例 63 8.1 问题描述 63 8.2 面向对象的解决方案 64 8.3 句柄类 67 8.4 扩展1:新操作 69 8.5 扩展2:增加新的节点类型 72 8.6 反思 73 第9章 一个课堂练习的分析(上) 75 9.1 问题描述 75 9.2 接口设计 77 9.3 补遗 79 9.4 测试接口 80 9.5 策略 81 9.6 方案 81 9.7 图像的组合 85 9.8 小结 87 第 10章 一个课堂练习的分析(下) 89 10.1 策略 89 10.2 体验设计的灵活性 102 10.3 小结 105 第 11章 什么时候不应当使用虚函数 107 11.1 适用的情况 107 11.2 不适用的情况 108 11.3 析构函数很特殊 113 11.4 小结 114 第三篇 模 板 第 12章 设计容器类 117 12.1 包含什么 117 12.2 复制容器意味着什么 118 12.3 怎样获取容器的元素 121 12.4 怎样区分读和写 121 12.5 怎样处理容器的增长 123 12.6 容器支持哪些操作 124 12.7 怎样设想容器元素的类型 124 12.8 容器和继承 125 12.9 设计一个类似数组的类 126 第 13章 访问容器中的元素 131 13.1 模拟指针 131 13.2 获取数据 132 13.3 遗留问题 135 13.4 指向const Array的Pointer 139 13.5 有用的增强操作 140 第 14章 迭代器 145 14.1 完成Pointer类 145 14.2 什么是迭代器 148 14.3 删除元素 149 14.4 删除容器 150 14.5 其他设计考虑 151 14.6 讨论 151 第 15章 序列 153 15.1 技术状况 153 15.2 基本的传统观点 154 15.3 增加一些额外操作 159 15.4 使用范例 162 15.5 再增加一些 166 15.6 请你思考 167 第 16章 作为接口的模板 169 16.1 问题 169 16.2 第 一个例子 170 16.3 分离迭代方式 170 16.4 遍历任意类型 172 16.5 增加其他类型 173 16.6 将存储技术抽象化 174 16.7 实证 177 16.8 小结 178 第 17章 模板和泛型算法 179 17.1 一个特例 180 17.2 泛型化元素类型 180 17.3 推迟计数 181 17.4 地址独立性 183 17.5 查找非数组 184 17.6 讨论 185 第 18章 泛型迭代器 187 18.1 一个不同的算法 187 18.2 需求的分类 189 18.3 输入迭代器 190 18.4 输出迭代器 190 18.5 前向迭代器 191 18.6 双向迭代器 191 18.7 随机存取迭代器 192 18.8 是继承吗 193 18.9 性能 193 18.10 小结 194 第 19章 使用泛型迭代器 195 19.1 迭代器类型 196 19.2 虚拟序列 196 19.3 输出流迭代器 199 19.4 输入流迭代器 200 19.5 讨论 204 第 20章 迭代器配接器 205 20.1 一个例子 205 20.2 方向不对称性 207 20.3 一致性和不对称性 208 20.4 自动反向 209 20.5 讨论 211 第 21章 函数对象 213 21.1 一个例子 213 21.2 函数指针 216 21.3 函数对象 218 21.4 函数对象模板 219 21.5 隐藏中间类型 220 21.6 一种类型包罗万象 221 21.7 实现 222 21.8 讨论 224 第 22章 函数配接器 225 22.1 为什么是函数对象 225 22.2 用于内建操作符的函数对象 226 22.3 绑定者(Binders) 227 22.4 更深入地探讨 228 22.5 接口继承 229 22.6 使用这些类 230 22.7 讨论 231 第四篇 库 第 23章 日常使用的库 235 23.1 问题 235 23.2 理解问题:第 1部分 237 23.3 实现:第 1部分 237 23.4 理解问题:第 2部分 239 23.5 实现:第 2部分 240 23.6 讨论 242 第 24章 一个库接口设计实例 243 24.1 复杂问题 244 24.2 优化接口 245 24.3 温故知新 246 24.4 编写代码 247 24.5 小结 249 第 25章 库设计就是语言设计 251 25.1 字符串 251 25.2 内存耗尽 252 25.3 复制 255 25.4 隐藏实现 257 25.5 缺省构造函数 259 25.6 其他操作 260 25.7 子字符串 262 25.8 小结 263 第 26章 语言设计就是库设计 265 26.1 抽象数据类型 265 26.2 库和抽象数据类型 266 26.3 内存分配 269 26.4 按成员赋值(memberwise assignment)和初始化 270 26.5 异常处理 272 26.6 小结 272 第五篇 技 术 第 27章 自己跟踪自己的类 275 27.1 设计一个跟踪类 275 27.2 创建死代码 278 27.3 生成对象的审计跟踪 279 27.4 验证容器行为 281 27.5 小结 286 第 28章 在簇中分配对象 287 28.1 问题 287 28.2 设计方案 287 28.3 实现 290 28.4 加入继承 292 28.5 小结 293 第 29章 应用器、操纵器和函数对象 295 29.1 问题 295 29.2 一种解决方案 297 29.3 另一种不同的解决方案 298 29.4 多个参数 299 29.5 一个例子 301 29.6 简化 302 29.7 思考 303 29.8 历史记录、参考资料和致谢 304 第30章 将应用程序库从输入输出中分离出来 305 30.1 问题 305 30.2 解决方案1:技巧加蛮力 306 30.3 解决方案2:抽象输出 307 30.4 解决方案3:技巧而无蛮力 309 30.5 评论 311 第六篇 总 结 第31章 通过复杂性获取简单性 315 31.1 世界是复杂的 315 31.2 复杂性变得隐蔽 316 31.3 计算机也是一样 316 31.4 计算机解决实际问题 317 31.5 类库和语言语义 318 31.6 很难使事情变得容易 319 31.7 抽象和接口 320 31.8 复杂度的守恒 321 第32章 说了Hello world后再做什么 323 32.1 找当地的专家 323 32.2 选一种工具包并适应它 324 32.3 C的某些部分是必需的 324 32.4 C的其他部分不是必需的 325 32.5 给自己设一些问题 327 32.6 小结 329 附录 Koenig和Moo夫妇访谈 331
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价