C++编程惯用法

出版时间:2012-10  出版社:莫瑞 (Robert B. Murray) 人民邮电出版社 (2012-10出版)  作者:莫瑞  页数:228  
Tag标签:无  

内容概要

  在《C++编程惯用法:高级程序员常用方法和技巧》中,C++专家Robert B. Murray与我们分享了他宝贵的经验和建议,以帮助初中级C++程序员得到进一步的提高。  《C++编程惯用法:高级程序员常用方法和技巧》总共分为11章,先后介绍了抽象、类、句柄、继承、多重继承、考虑继承的设计、模板的高级用法、重用、异常以及向C++的移植等相关的诸多话题。在书中,作者大量采用了实际开发中的代码作为示例,向读者展示了那些有用的编程策略,并对那些有害的做法进行了警示。为了帮助读者更好地理解,在每一章结束前,在该章中介绍过的主要内容都被放到了一个列表中,此外,书中还给出了一些问题来激励读者们进行更多的思考和讨论。  《C++编程惯用法:高级程序员常用方法和技巧》适合具有一定C++编程经验的程序员和项目经理阅读,也适合对C++编程的高级主题感兴趣的读者参考。

作者简介

Robert B. Murray在著作本书时是Quantitative Data公司中负责软件工程的副总裁,1该公司的业务包括向世界500强公司提供面向对象的软件解决方案.a在此之前,1他曾经供职于AT&T贝尔实验室,并在那里参与了C++语言、编译器和库的开发。他还是The C++ Report的创刊编辑。从1987年起,他就开始在学术会议和专业会议上讲授C++语言。

书籍目录

第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.1is-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传递参数给operator new 9.6管理外部资源 9.7寻找有关内存的bug 9.8名字冲突 9.9性能 9.10不要去猜想,而应该度量! 9.11算法 9.12动态内存分配中的瓶颈 9.13内嵌 9.14Tiemann法则 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问题

章节摘录

版权页:   插图:   在另外一种备选方案中,我们关注的计数对象包括对所有的(智能)指针以及被它们所指向的对象。每隔一段时间,我们就会使用一个“垃圾收集器”去检测所有已有的指针,并对它们所指向的对象进行标注。如果存在未被标注的对象,它就会将该对象删除。 这种做法既有好处,也有坏处。虽说对一个使用了计数器的指针进行的修改涉及多个计数器的改动(见7.4.2的代码),对一个被收集的指针进行修改速度还是和对一个一般指针进行修改的速度是一样的。在天平的另一端,对指针以及被指向对象的创建和删除则要费时得多,因为这些操作必须要更新用来记录已有指针和对象的数据结构。应用程序的设计者必须决定在什么时候来运行垃圾收集子程序。对于实时系统来说,在一个请求被响应前,我们可能得不到足够的时间来完成我们的垃圾收集操作,这也会使得我们的垃圾收集器的逻辑变得复杂起来。 然而,如果程序中的指针的值经常发生改变,而指针本身和对象并不会经常被创建和摧毁,那么使用这种方案就可以给我们带来最佳的性能。 对于那些外界不能获得的循环指向对象来说,我们还是无法收集它们。不过我们可以通过对垃圾收集器进行改进,增加一个根指针来应付这种情况。如果所有的“活着的”对象都是要么被根指针所指向,要么被另外一个“活着的”对象中的指针所指向,那么垃圾收集器就可以从根指针开始对所有后续的指针进行遍历,为每一个被指向的对象进行标注。由于垃圾收集器必须能够找到对象中的所有指针,我们很难构建一个通用的库来支持这种垃圾收集方式。在实际应用中,我们通常的做法是:为某个类手工创建一个单独的函数来处理它。 9.4.3 Arena arena是用来管理内存的最简单方案之一。但是它们只适用于某些特定的应用程序。在这些程序中,每个对象都是在arena中创建的。在后期,当arena被清空时,所有在arena中的对象都会被删除。 例如,我们假设有一个C++的解析器,它会去解析一系列的文件,在某个文件中都会包含一系列的外部声明。在解析过程中,解析器可能会创建一系列的符号表用来表示解析中碰到的名字。解析器的作者可能会认为,函数中声明的符号在离开函数后就将变得没有价值,可以被丢弃了:但对于有着文件范围属性的符号来说,在文件被完整解析之前,它都不能被丢弃。

媒体关注与评论

这是每一位专业C++程序员都应该阅读的一本书,作者经验丰富,给出了很多真知灼见。                       ——ACCU主席Francis Glassborow

编辑推荐

ACCU主席Francis Glassborow倾力推荐传授如何在C++中作出选择的专家级读本阐释如何使用C++进行更好编程的真知灼见使用大量示例代码演示有用的编程策略

名人推荐

这是每一位专业C++程序员都应该阅读的一本 书,作者经验丰富,给出了很多真知灼见。 ——Francis Glassborow.ACCU主席

图书封面

图书标签Tags

评论、评分、阅读与下载


    C++编程惯用法 PDF格式下载


用户评论 (总计12条)

 
 

  •   选择的时候没有细看,以为是新书。译者还花精力翻译这么旧的书 不解啊。。
  •   还没看完,不过看了几章了,写的不错.有些翻译比较拗口.
  •   质量不错,内容我就不评价了,各取所需。
  •   这本书与C++经典入门书籍类似,也是挺经典的,其中内容不但可以让人养成好的习惯,面向对象编程时更容易,而且还可以避免误入一些争议的误区,引起不必要的麻烦。
  •   讲得很好。这本书中给出了很多好的编程用法,还讲解了使用这些用法的缘故。值得研究!
  •   对于有一定基础和经验的C++程序员来说,此书值得一读。每章最后的小结和问题(思考)是此书最大的亮点。但是:这是一本1993年写的书!!!有些内容过时了,甚至是现代C++编程所不再鼓励或已经摒弃的做法。真搞不懂人邮出版社2012年出版这么一本旧书的目的何在!
  •   这本书02年就出版了,技术当然不是最新的。个人感觉适合使用C++两三年左右的读者。书中都是一些常用的技术,当然,对于用C++进行应用系统开发的人来说,掌握这本书的技术就足够了。对于要写程序库的人来说,掌握这本书还远远不够。
  •   书是好书,价格太贵
  •   买重了呢
  •   非常喜欢喝非长好的一本书
  •   基础不好就不要买此书
  •     所谓的高级程序员常用方法和技巧只不过是一些C++常识的总结,做为一名C++程序员如果这些常识都做不到,不知道是否可以算是一名合格的C++程序员呢?
      如果你看了C++ primer之类的书,并不敢说自己对书中的内容了如指掌的话,建议还是看看这本书。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7