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


-
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

10.53MB
C++编程惯用法——高级程序员常用方法和技巧.pdf
2015-09-052015年7月TIOBE编程语言排行榜:C++ 的复兴 C++是2015年上半年同比增长最快的编程语言。具体为C++ 增长3.1%,Java 增长2.0%,C#增长1.6%,Python增长1.6%。
C++编程惯用法——高级程序员常用方法和技巧.pdf下载_course
2020-03-14C++编程惯用法——高级程序员常用方法和技巧.pdf 相关下载链接://download.csdn.net/download/wolegeri/1576087?utm_source=bbsseo
10.24MB
C++编程惯用法(高级程序员常用方法和技巧Robert+B.Murray+著)
2013-08-30C++编程惯用法(高级程序员常用方法和技巧Robert+B.Murray+著) 经典教程,免费下载
27.34MB
C++编程惯用法-高级程序员常用方法和技巧-高清带书签
2018-04-11平台上的很多都不清晰,这个版本是高清并且带书签的。 C++编程惯用法:高级程序员常用方法和技巧,ISBN:9787508319124,作者:(美)Robert B.Murray著;王昕译;王昕译 这本
10.45MB
c++编程惯用法
2013-03-31本书的目的是帮助c++新手学习到那些在实践中最有效的惯用法。同时,也会在书中指出那些经常接触到的c++缺陷。
10.53MB
C++编程惯用法
2011-10-11作者:(美)默里 著,王昕 译 出版日期:2004-2-1 出版社:其它 页数:208 ISBN:9787508319124 文件格式:PDF 书籍简介 本书第1版荣获美国“软件开发”杂志评选的199
50.28MB
《C++编程惯用法——高级程序员常用方法和技巧》
2018-02-08《C++编程惯用法——高级程序员常用方法和技巧》Robert B. Murray,高清pdf扫描版本。
10.27MB
C++ 编程惯用法+高级程序员常用方法和技巧
2010-11-27C++ 编程惯用法+高级程序员常用方法和技巧 C++ 编程惯用法+高级程序员常用方法和技巧
10.40MB
《C++编程惯用法——高级程序员常用方法和技巧》.pdf
2011-06-15《C++编程惯用法——高级程序员常用方法和技巧》,英文名《C++ Strategies and Tactics》,作者:【美】Robert B.Murray,翻译:王昕。出版社:中国电力出版社,ISB
8.1MB
C++编程惯用法——高级程序员常用方法和技巧
2009-03-05C++ Strategies and Tactics的中文版,介绍了C++编程惯用方法和高级程序员常用方法和技巧,对面向对象的C++做了深入的探讨,值得一看。
100.62MB
C++编程惯用法-高级程序员常用方法和技巧.pdf
2015-09-12C++编程惯用法-高级程序员常用方法和技巧.pdf
49.0MB
C++编程惯用法:高级程序员常用方法和技巧.part1.rar )
2014-09-09C++编程惯用法:高级程序员常用方法和技巧.part1.rar
C++编程惯用法.高级程序员常用方法和技巧.pdf下载_course
2019-08-25C++编程惯用法.高级程序员常用方法和技巧.pdf 我收集的资料,放在这里备份。 相关下载链接://download.csdn.net/download/aasmfox/5790049?utm_sou
C++编程惯用法-高级程序员常用方法和技巧下载_course
2019-07-17C++学习资料PDF文档,C++编程惯用法-高级程序员常用方法和技巧 相关下载链接://download.csdn.net/download/yeshenyuege/3341406?utm_sourc
161.26MB
垃圾分类数据集及代码
2020-11-11资源说明: 数据集主要包括6类图片:硬纸板、纸、塑料瓶、玻璃瓶、铜制品、不可回收垃圾 代码运行说明: 1、 安装运行项目所需的python模块,包括tensorflow | numpy | keras
Python金融数据分析入门到实战
2019-09-26会用Python分析金融数据 or 金融行业会用Python 职场竞争力更高 Python金融数据分析入门到实战 掌握金融行业数据分析必备技能 以股票量化交易为应用场景 完成技术指标实现的全过程 课程选取股票量化交易为应用场景,由股票数据的获取、技术指标的实现,逐步进阶到策略的设计和回测,由浅入深、由技术到思维地为同学们讲解Python金融数据分析在股票量化交易中的应用。 以Python为编程语言 解锁3大主流数据分析工具 Python做金融具有先天优势,课程提取了Python数据分析工具NumPy、Pandas及可视化工具Matplotlib的关键点详细讲解,帮助同学掌握数据分析的关键技能。 2大购课福利
-
学院
基于电商业务的全链路数据中台落地方案(全渠道、全环节、全流程)
基于电商业务的全链路数据中台落地方案(全渠道、全环节、全流程)
-
下载
TL1761_Promotion R1.pdf
TL1761_Promotion R1.pdf
-
学院
鸿蒙系统Harmonyos源码架构分析-第1期第2课
鸿蒙系统Harmonyos源码架构分析-第1期第2课
-
博客
高级单片机、EDA开发实验装置
高级单片机、EDA开发实验装置
-
学院
基于SSM实现的房屋租赁系统【附源码】(毕设)
基于SSM实现的房屋租赁系统【附源码】(毕设)
-
博客
微信小程序开发后如何盈利,这几种方法教给你
微信小程序开发后如何盈利,这几种方法教给你
-
博客
leetcode303(区域和检索 - 数组不可变:前缀和)
leetcode303(区域和检索 - 数组不可变:前缀和)
-
下载
TL1771_V1.2_20050501.pdf
TL1771_V1.2_20050501.pdf
-
博客
使用Redis时出现的问题
使用Redis时出现的问题
-
学院
用Go语言来写区块链(一)
用Go语言来写区块链(一)
-
学院
牛牛量化策略交易
牛牛量化策略交易
-
下载
TL1772_V0.7_20051205.pdf
TL1772_V0.7_20051205.pdf
-
学院
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
-
博客
PAT甲级练习1007 Maximum Subsequence Sum最大连续子序列和 (25 point(s))
PAT甲级练习1007 Maximum Subsequence Sum最大连续子序列和 (25 point(s))
-
学院
华为1+X认证——网络系统建设与运维(初级)
华为1+X认证——网络系统建设与运维(初级)
-
博客
PicGo复制自定义链接
PicGo复制自定义链接
-
博客
1023 组个最小数 (20 分)
1023 组个最小数 (20 分)
-
博客
ThreadPoolExecutor源码理解(一)ThreadPoolExecutor中的一些设计和问题的解答
ThreadPoolExecutor源码理解(一)ThreadPoolExecutor中的一些设计和问题的解答
-
下载
UC1697v_V1.01_20071128.pdf
UC1697v_V1.01_20071128.pdf
-
学院
linux基础入门和项目实战部署系列课程
linux基础入门和项目实战部署系列课程
-
学院
Galera 高可用 MySQL 集群(PXC v5.6 + Ngin
Galera 高可用 MySQL 集群(PXC v5.6 + Ngin
-
博客
理财学习02-基金误区
理财学习02-基金误区
-
学院
华为1+X——网络系统建设与运维(中级)
华为1+X——网络系统建设与运维(中级)
-
博客
Leetcode 110. 平衡二叉树
Leetcode 110. 平衡二叉树
-
下载
QT中sqlite多线程操作4个注意问题
QT中sqlite多线程操作4个注意问题
-
下载
谭浩强C语言课件第五版
谭浩强C语言课件第五版
-
学院
MySQL 事务和锁
MySQL 事务和锁
-
下载
TL1772_Initial_Rev1.0.pdf
TL1772_Initial_Rev1.0.pdf
-
学院
Liunx 优化思路与实操步骤
Liunx 优化思路与实操步骤
-
下载
自定义拍照、录制视频工具类.zip
自定义拍照、录制视频工具类.zip