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

所需积分/C币:33 2016-01-22 15:11:22 10.41MB PDF
12
收藏 收藏
举报

C++编程惯用法.高级程序员常用方法和技巧.pdf
深入C艹+系列 C++ strategies and Tactics c++编程用 高纸程序常用方法利技巧 [美] Robert b. Murray著 王所译 中电力出照社 C++ Strategies and Tactics (ISBN 0-201-56382-1y Robert B. murray Authorized trarslation from tke English language edition, entitled C++ Strategies and lactics, published by Addison Wesley, Copyright @1993 Al rights reserved Na part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical including photocopying, recording or by any information storage retrieval system, without permission trom the publisher CHINESE SIMPLIFIED language edition published by China Electric Power Press Copyright@2003 本书由美国培生集团授权出版。 北京市版权局著作权合同登记号图字:01024845号 图书在版编日(CTP)数据 C+编程惯用法—高级程序员常用方法和技′(美〕默里著:于昕译 一北京:中国电力出版社,2003 ISBN7-508319125 IC.Ⅱ①默,②王IC语言一程序设计ⅣT32 十国版本图书绾CIP数据强字(2003)第l1号 丛书名:深入C艹系列 书名:C++编惯用法一高级程序员常用方法和技巧 著:(美) Robert B murray 翻译:正听 责任编辑:陈绯宁 出版发行:中国电力出版社 地址:北京市里河路6号邮政编码:10044 电话:t10)88515%8 传真:(00)8851816 印:汇鑫印务限公司 于本:787×109216 印张:13625 了数:29千字 书号;IsBN75083-19125 版次:204年2月北京第1扳 2004年2月第1次印 定价:2600元 版权所有翻印必究 代译者序 It is one of those books that every professional C++ programmer should have read as it is full of good advice based on a wealth of experience”-—ACCU主席 francis glassborow 是的,上面的评价就是ACCU主对于你现在于头上的这本书的评价。现在世面上关于 C++的书籍种类之多,可谓浩如繁星,但能够得到 Francis Glassborow亲自介绍并且给出 “ Highly recommended”这一最高推荐度的C++书籍,不过几本而已,而这本就是其中之一。 作为一种支持多种设汁范型的通用程序设计语言,C++程序设计语言自身所特有的内涵以 及外延都决非一两出刍的书籍所能包含亦或一两年艰苦的学习所能掌握的究其原因就是因为 在使用C艹语言的过程中,你会拥有太多的选择。无论是在用C+进行设计或者实现,做出 正确的选择都决求易事。非常多的C+书籍都只是详细地介绍了语言的特性,即促是某些口 碑良好的读本,也同样只是在传教语言本身却忽视了告诉读者如何在使用C+的过程屮去做 出正确的选择。而这本书却在这个关键方面有着出色的表圳:从这一方面来说,这本书是为那 些严肃的以及真正书写C+代码的程序员准备的 从本书中,你不会学习到什么是左值,什么是循环,什么是类。因为这本书理想的读者是 那些已经具备了一定C+基础,期望并且正在迈向C+专家之路的程序员。尽管本书的作者 在一开始就已经表明了没有人可以仅仅通过阅读此书而成为专家,但是以我对这本书的观点来 看,作者 Rob murray无疑是在以自己数年的专家经验为大家铺设一条通往专家的大道,这 也正印证了那句经典—“师傅领进门,修行靠个人” 那么到底该如何给这本书定位呢?一位使用了C++数十年的专家写成的本关于如何在 C++中做出正确选择的专家级读本,这就是我心日中给此书的定位。在购买此书之前,你应该 至少阅读过…本关于C++语言的书籍,但无需对C++有很深刻的认识,因为这干是此书想要 达到的目的。如果你曾经阅读过《++沉思录》,那么这本书的程度和那一本在某种意义上是 致的,因为它们都不是关于语言介绍的,而都是关于如何使用C+的。并且同样的在书中 遍布了许多关于如何使用C-+进行更好编程的真知灼见 在这里,我还给大家一点阅读方叵的建议。本书本身是按照主题来组织的,也就是说一个 章节一般都是独立地说明了C++方面的某一个主题,并且给出了详细的解释以及说明。这样, 阅读本书就并不需要循序而来,你可以一上来就选择你所感兴趣的主题章节进行阅读,不过我 还是建议人家在阅读之前首先好好地熟读第一章。这一章是关丁抽象( Abstraction)的,关于 抽象这一主题的说明并不十分常见于般的编程书籍或者语言介绍书籍中。然而,抽象这个与 编程有着本质联系的概念对于培养良好的程序观有着不可替代的作压。北玛中关于抽象概念的 说明虽然不是很深入,却非常直观和于理解,我想在拥有了个良好的抽象概念后,再去细 细品味书中所提到的其他关于C++的切是有好处的。 最后,我还想单独地挑出书中的一章来谈谈我的看法。此书第9章标题題非常醒目——重用 Reusability),软件工程中的个核心而又敏感的词汇。在一本C十+书籍中,对如此主题进 行论述是合适?这也是我拿到看过日录后的第一反应因为重月这个话题决个是一两句 活、一两个章节可以说清楚的,如此一灭,如果作者没有很好的技术功底以及文字能力,这样 的章节只可能沦落成“食之无末、弃之刂惜”的鸡肋。在我个人阅读过的许多书籍中,这种现 象常常见到,以至于现在我会把一本书是否包含了鸡动章节作为评价一本书好坏的重要标准之 然而,在详细地读过这一章节之后这是我在阅读这本书的过程中看的第2章,第1章就 是关于抽象的那章。是的,我个人是按照主题来读此书的),我想我的疑虑全部都被打消了。 作者 Rob Murray不愧是程序设计址内的专家人物,可谓深谙重用之道,而其叙运手段更是 精彩,首先从重用的日标以及发现说起,再-步步结合C++语言的实现方式对多个主题进行 了深入浅出的论述,其对软T学中重用的概念以及C++的多个实现亠题之间的结合可谓完美。 在和此书译者于昕先生的私下交谈中,泽者多次提到这一章也是让他本人最受益的,一个使用 C艹+已经有八年之久的程序员尚能从中获益,我相信一般读者在深刻理解了本章内容后一定会 有同样的感觉。在我眼里这一章内容就已经对得起读者对此书的所有投资了。 关十此书作者及译者,书底有很好的介绍,我也就不再着墨了。书没有最好的,只有最 合自己的,在我说了这么多之后,这本书是否适合你,还是需要你自已做出判断,但再一次看 看 Francis Glassborow对此#的另外条评价也许能让你更快并且正确地做出买与不买的选 择,就像这本书将会告诉你吏多关」C+使用上的该与不该一样 Get a cop read it and pass it on, Get your own copy if you want to keep ahead of your colleagues. ACCU主席 Francis glassborow 于长沙中南大学 序 在专家看来,C+可以帮助软件设计者和程序员构造出模块化、易维护以及高性能的系统。 然而,对新手来说,这门语言的复杂程度是个不小的威胁。在C++中有着许多不同的语言 特性,只有具有一定经验之后,我们才会知道各种特性的适用情况。 本书的日的就是加速读者的这种学习进程。大部分成功的C+程序员并不会简单地从语 言规则中复述出某些章节或是条款,相反,他们总是习惯于自亡以往工作中所获得的行之有效 的那些惯用法和技巧。我们的目的就是帮助那些C+的新手学小到那些在实践中最有效拍惯 用法。同时,我们也会在书中指出那些我们经常接触到的C++缺陷。 在本书中,我们的讨论并不试图覆盖整个语言,那些有关语言语义的精确定义订以登看参 考手册。我们主要莉助读者构造出可以被那些不是C++语言专家的人所理解程序。我们不 但讨论了那些使程序变得优雅及高效的技巧,也展示了如何使它打更容易被理解和维护的 致谢 本书中的想法和编程惯用法几乎都不是我发明的。我的目的就是把它们(在我8年的C+ 使用过程中从其他人那学到的并被我认为是最重要的策略和战术)用一种C++新三也能学会 的方式展现给读者。这些收获中的部分来自于实际的开发项中(这些项日被我们从C移植 到C++上)的经验,另外一些则来自于和其他高手的讨论 关于模板以及函数库设计的许多好的想法(包括那些隐藏在本书所给出的容器类后的想 法)都来自于最初由 Martin Carroll, Andrew Koenig以及 Jonathan Shopi所爱计的UST标准 组件库中的类。对丁在本书中出现的任何错误,则都由我负责。 Andrew Koenig是一个C+ 语言专家,他对我的耨助非常大另外,那些参与过我所举行过的几期“C+策略与战术”研 讨会的人也帮助启发了我书写本,并对书中的想法进行提炼。其他的重要的想法自于Tm Cargill\ John Carolan、 Jim Coplien, Mark linton., Gerald schwarz,当然,还有 Jane Stroustrup, 要不是他发明了C艹语言,本书也就不可熊出现了 Brian Kemighan阅读过本书的多次草稿,他极好的反馈意见起了很大的粑助作。同时我 1评注;关于SL标准籍件的文章参见于1993年6月的幻C艹Repo8中 Merin can所写的 Design ot the USL Standard 五e 还要感谢 David anatone, Steve burnoff、 Tom Cargill, Bill Hopkins、 Cav horstman, Lorraine Juhl Peter juhl、 Stan lippmann、 Dennis mancl、 Scott Meyers、 Barbara moo、 Lorraine weisbrot Murray Bjme」ru吧p、 Clovis toldo、 Steve vinoski以及 Christopher Van Wyk,他们对本书早期的 草稿提出了意见。此外, Loraine weisbrot murray2对我的鼓、理解、支持以及爱仅得这一切 努力都成为了可行的 2嘩注:I心 raine Weistyot murray是 Roken B. Murray的妻子【经 Robert B, Murray评实 目录 代译者序 序 第Q章简介… 0关于小代码 02本的组织 03问题 04语言规则 第1章抽象灬 有关电活号码的抽象模型… 6 12:象模型间的关系…… 13请考虑边界条件…………………… 4使用CRC卡片来辅助设计… 15小结………… 6问题 14 第2章类… 15 2!构造函数……… 15 22赋值………… I■■■L■■■■■↓ ■+}量·■ 23公用数据… 24隐式类梨转挨 25挺作符重载:成员或成员 rTm■■ra1ma■■ 26車载、缺省值以及省略符 2. 7 Const 28返回值为引用…… 43 29静态对象的构造… 2G小结 45 2|]河题 4 第3章句柄 〓「···"L···■■!L·■■■·■■■!『L■■■■L■■■■■■■■■■■■■A日4■■■I■lI■■4l■ II■ 个Srng类 ■■』b4k亠ldd■ 32用计数器来避免多份拷贝 …50 3避免进行重编译: Cheshire cat ■T■I■中lP■■ 34使用句炳来隐藏极计 ↓口画■ 35多种实现……… 57 36作为对象的柄 1中中■中I■■F■■■hlb++d口■■冒■1 ■■山 61 3.7综…… 61 38小结… 61 3.9问题 第4章继承…………… ………-…4…3……-r";…--…-6 41is-a关系 42公有继度… p导b●口看●国p●l卩中口中■中l·l中即■甲 43私有继承…… b●司■↓■■■■■动p司L▲ q卩中■■l ↓↓■↓昴■p 44保护型继承…… 45与类抽象的致性……… 46纯虚函数… ■P甲.中甲dp ●即■自中■中目血 中■血 ●司■函■■由口中司日■ 4.7有关继承的细节和陷阱… 48小结…………… b÷!■■『■卜l·+『■■■骨4b4r■T中■q■■■中P++■如1k+P■■■■■画■■■■■■■■『1■■I 49问踅… 79 第5章多重继承…………………………………80 51作为交集的多重继承………………… 80 52虚基类 53一些有关多重维承的细节问越… …….89 54小结 日■平· 91 55问题 +4L■■上■■↓4卩L bd,■■■■■d山■knm■山』L 第6章考虑继承的设计 …93 6被保护的接口 62我们的计足药应该考虑到继承?… ■■■+4P 63一些为继承所做的设计的例于……………… 64结论……………… 105 66问题…… 106 第7章模板 ………107 7.1模板类Far… 7.2一些有关模板的细节……… ■乱■■』 73模板的实树化………… 111

...展开详情
试读 127P C++编程惯用法.高级程序员常用方法和技巧.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
上传资源赚积分or赚钱
    最新推荐
    C++编程惯用法.高级程序员常用方法和技巧.pdf 33积分/C币 立即下载
    1/127
    C++编程惯用法.高级程序员常用方法和技巧.pdf第1页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第2页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第3页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第4页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第5页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第6页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第7页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第8页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第9页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第10页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第11页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第12页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第13页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第14页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第15页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第16页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第17页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第18页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第19页
    C++编程惯用法.高级程序员常用方法和技巧.pdf第20页

    试读结束, 可继续阅读

    33积分/C币 立即下载 >