注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计C/C++及其相关C++编程惯用法:高级程序员常用方法和技巧

C++编程惯用法:高级程序员常用方法和技巧

C++编程惯用法:高级程序员常用方法和技巧

定 价:¥26.00

作 者: (美)Robert B.Murray著;王昕译;王昕译
出版社: 中国电力出版社
丛编项: 深入C++系列
标 签: C++

ISBN: 9787508319124 出版时间: 2004-02-01 包装: 胶版纸
开本: 23cm 页数: 208 字数:  

内容简介

  在本书中,C++专家RobMurray就与我们分享了他宝贵的经验和建议,以帮助初中级C++程序员得到进一步的提高。作者大量采用了实际开发中的代码来作为示例,向读者展示了那些有用的编程策略,并对那些有害的做法进行了警示。为了帮助读者更好地理解,在书中的每一章结束前,在该章中被介绍过的主要内容都被放到了一个列表中,此外,书中还给出了一些问题来激励读者们进行更多的思考和讨论。本书在一开始就向我们讲解了如何为我们的设计选择正确的抽象,提示我们注意抽象和实现之间的区别—然后,我们就将学到如何将己得到的抽象转化成一个(或多个)C++中的类,期间进行的讨论所涵盖的范围上至高层的设计策略,下至底层的接口和实现细节。对于C++中新增的模板特性,通过从基础开始到逐步地接触实际应用中的示例,RobMurray向我们展示了其空前的洞察力。作者同时也向我们展示了多种特定的技巧,以使我们的程序更快、重用性更高,并且更健壮。异常是C++中另外一个新增的特性,对于何时该使用它,何时不该使用它,Murray也向我们给出了他的建议-在本书的最后,我们还可以学到如何将一个项目从C移植到C++之上,书中对该过程的讨论不但包括了其中可能出现的技术问题,也包括了使用技术的“人”的问题。作者RobertB.Murray在撰写该书时是量子数据系统公司(QuantitativeDataSystems)中负责软件工程的副总裁,该公司的业务包括向财富500强(Fodune500)中的公司提供面向对象的软件解决方案在此之前,他曾经在AT&T的Bell实验室工作,在那里他参与了C++语言、编译器以及库的开发。他同时也是《TheC++Report》杂志的创立编辑(foundingeditor),主持ObfuscatedC++专栏。从1987年起,他就开始在学术会议和专业会议上向人教授C++语言。目前Murray在FNIS公司进行着软件开发的管理,他的兴趣主要包括:程序语言的开发和工具,以及轻量级的开发过程(如极限编程)译者王昕自1995年起接触C++编程,参与过多个C++项目的开发。曾在网上和杂志上发表过多篇有关C++的文章。主要兴趣包括:程序语言的开发、形式化理论、软件开发方法学等。

作者简介

  Robert B.Murray在撰写该书时是量子数据系统公司(Quantitative Data Systems)中负责软件工程的副总裁,该公司的业务包括向财富500强(Fortune 500)中的公司提供面向对象的软件解决方案。在此之前,他曾经在AT & T的Bell实验室工作,在那里他参与了C++语言、编译器以及库的开发。他同时也是《The C++ Report》杂志的创立编辑(founding editor),主持Obfuscated C++专栏。从1987年起,他就开始在学术会议和专业会议上向人教授C++语言。目前Murray在FNIS公司进行着软件开发的管理,他的兴趣主要包括:程序语言的开发和工具,以及轻量级的开发过程(如极限编程)。王昕,自1995年起接触C++编辑,参与过多个C++项目的开发。曾在网上和杂志上发表过多篇有关C++的文章。主要兴趣包括:程序语言的开发、形式化理论、软件开发方法学等。

图书目录

代译者序                  
   序                  
   第0章  简介                  
     0. 1  关于示例代码                  
     0. 2  本书的组织                  
     0. 3  问题                  
     0. 4  语言规则                  
   第1章  抽象                  
     1. 1  有关电话号码的抽象模型                  
     1. 2  抽象模型间的关系                  
     1. 3  请考虑边界条件                  
     1. 4  使用CRC卡片来辅助设计                  
     1. 5  小结                  
     1. 6  问题                  
   第2章  类                  
     2. 1  构造函数                  
     2. 2  赋值                  
     2. 3  公用数据                  
     2. 4  隐式类型转换                  
     2. 5  操作符重载:成员或非成员?                  
     2. 6  重载. 缺省值以及省略符                  
     2. 7  Const                  
     2. 8  返回值为引用                  
     2. 9  静态对象的构造                  
     2. 10  小结                  
     2. 11  问题                  
   第3章  句柄                  
     3. 1  一个String类                  
     3. 2  使用计数器来避免多份拷贝                  
     3. 3  避免进行重编译:Cheshire Cat                  
     3. 4  使用句柄来隐藏设计                  
     3. 5  多种实现                  
     3. 6  作为对象的句柄                  
     3. 7  综述                  
     3. 8  小结                  
     3. 9  问题                  
   第4章  继承                  
     4. 1  is-a关系                  
     4. 2  公有继承                  
     4. 3  私有继承                  
     4. 4  保护型继承                  
     4. 5  与基类抽象的一致性                  
     4. 6  纯虚函数                  
     4. 7  有关继承的细节和陷阱                  
     4. 8  小结                  
     4. 9  问题                  
   第5章  多重继承                  
     5. 1  作为交集的多重继承                  
     5. 2  虚基类                  
     5. 3  一些有关多重继承的细节问题                  
     5. 4  小结                  
     5. 5  问题                  
   第6章  考虑继承的设计                  
     6. 1  被保护的接口                  
     6. 2  我们的设计是否应该考虑到继承?                  
     6. 3  一些为继承所做的设计的例子                  
     6. 4  结论                  
     6. 5  小结                  
     6. 6  问题                  
   第7章  模板                  
     7. 1  模板类Pair                  
     7. 2  一些有关模板的细节                  
     7. 3  模板的实例化                  
     7. 4  智能指针                  
     7. 5  作为模板参数的表达式                  
     7. 6  模板函数                  
     7. 7  小结                  
     7. 8  问题                  
   第8章  模板的高级用法                  
     8. 1  使用了模板的容器类                  
     8. 2  示例:Block                  
     8. 3  有关Block的设计细节                  
     8. 4  带有迭代器的容器:List                  
     8. 5  迭代器的设计细节                  
     8. 6  性能上的考虑                  
     8. 7  对模板参数的限制                  
     8. 8  模板特化                  
     8. 9  小结                  
     8. 10  问题                  
   第9章  重用                  
     9. 1  发现和获得                  
     9. 2  健壮性                  
     9. 3  内存管理                  
     9. 4  可选的内存分配方案                  
     9. 5  传递参数给operatornew                  
     9. 6  管理外部资源                  
     9. 7  寻找有关内存的bug                  
     9. 8  名字冲突                  
     9. 9  性能                  
     9. 10  不要去猜想, 而应该度量!                  
     9. 11  算法                  
     9. 12  动态内存分配中的瓶颈                  
     9. 13  内嵌                  
     9. 14  Tiemann法则                  
     9. 15  小结                  
     9. 16  问题                  
   第10章  异常                  
     10. 1  一个负面的声明                  
     10. 2  为什么需要异常?                  
     10. 3  一个异常的例子                  
     10. 4  异常只应该用来表述异常情况                  
     10. 5  理解异常                  
     10. 6  责任评估                  
     10. 7  设计异常对象                  
     10. 8  小结                  
     10. 9  问题                  
   第11章  向C++移植                  
     11. 1  选择使用C++                  
     11. 2  采用C++                  
     11. 3  设计和实现                  
     11. 4  开发一个坚实的基础                  
     11. 5  相关的思考                  
     11. 6  小结                  
     11. 7  问题                  

本目录推荐