想买书的More Effective C++

cometcheng 2002-04-06 07:42:56
我现在在北京的 ,想买此书的 ,有人可以提供信息吗?
...全文
76 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cometcheng 2002-04-06
  • 打赏
  • 举报
回复
谢谢的,不过有书卖的吗?或者英文版的 也可以 的了 ,
我等等的 ,一定给分的
piaorenqian 2002-04-06
  • 打赏
  • 举报
回复
http://cpp.chinaccd.net/ebook/
内容简介   More Effective C++充满了实用性高且掷地铿锵的忠告,为你每天可能面对的问题带来帮助。和其前一本兄弟Effective C++一样,More Effective C++对每一位以C++为开发工具的程序员而言,都必备读物。   继 Effective C++ 之後,Scott Meyers 於 1996 推出这本「续集」。条款变得比较少,页数倒是多了一些,原因是这次选材比「第一集」更高阶,尤其是第五章。Meyers 将此章命名为技术(Techniques),并明白告诉你,其中都是一些 patterns,例如 virtual ctors、smart pointers、reference counting、proxy classes,double dispatching┅等等。这一章的每个条款篇幅都在 15~30 页之谱,实在让人有「山穷水尽疑无路,柳暗花明又一村」之叹。   虽然出版年代稍嫌久远,本并没有第二版,原因是当其出版之时(1996),C++ Standard 已经几乎定案,本即依当时的标准草案而写。其间与现今之 C++ 标准规格几乎相同。可能变化的几个弹性之处,Meyers 也都有所说明与提示。读者可以连结作者提供的网址,看看上下两集的勘误与讨论(数量之多,令人惊恐。幸好多是技术讨论或文字斟酌,并没有什麽重大误失)。 编辑推荐 继 Effective C++ 之後,Scott Meyers 於 1996 推出这本「续集」。条款变得比较少,页数倒是多了一些,原因是这次选材比「第一集」更高阶,尤其是第五章。Meyers 将此章命名为技术(Techniques),并明白告诉你,其中都是一些 patterns,例如 virtual ctors、smart pointers、reference counting、proxy classes,double dispatching┅等等。这一章的每个条款篇幅都在 15~30 页之谱,实在让人有「山穷水尽疑无路,柳暗花明又一村」之叹。 虽然出版年代稍嫌久远,本并没有第二版,原因是当其出版之时(1996),C++ Standard 已经几乎定案,本即依当时的标准草案而写。其间与现今之 C++ 标准规格几乎相同。可能变化的几个弹性之处,Meyers 也都有所说明与提示。读者可以连结作者提供的网址,看看上下两集的勘误与讨论(数量之多,令人惊恐。幸好多是技术讨论或文字斟酌,并没有什麽重大误失)。 媒体推荐 评   这是一本多方面发人深省的 C++ 籍:不论在你偶尔用到的语言特性上,或是在你自以为十分熟悉的语言特性上。只有深刻了解 C++ 编译器如何解释你的码,你才有可能以 C++ 语言写出稳健强固的软体。本是协助你获得此等层级之了解过程中,一份极具价值的资源。读过本之後,我感觉像是浏览了 C++ 程式大师所检阅过的码,并获得许多极具价值的洞见。 - Fred Wild, Vce President of Technology, Advantage Software echnologies   本内含大量重要的技术,这些技术是撰写优良 C++ 程式所不可或缺的。本解释如何设计和实作这些观念,以及潜伏在其他某些替代方案中的陷阱。本亦含晚近加入之 C++ 特性的详细说明。任何人如果要好好地运用这些新特性,最好一本并且放在随手可得之处,以备查阅。 - Chrisopher J. Van Wyk, Professor Mahematics and Computer Science, Drew University   这是一本具备工业强度的最佳籍。对於已经阅读过 Effetive C++ 的人,这是完美的续集。 - Eric Nagler, ++ Instructor and Author, Univesity of California Santa Cruz Extension   More Effective C++ 是一本无微不至而且价值不扉的籍,是 Scott 第一本 Effective C++ 的续集。我相信每一位专业的 C++ 软体开发人员都应该读过并记忆 Effective C++ 和 More Effective C++ 两本内的各种招式,以及其中重要(并且有时候不可思议)的语言面向。我强烈推荐这两本给软体开发人员、测试人员、管理人员┅,每个人都可以从 Scott 专家级的知识与卓越的表达能力中获益。 - Steve Burkett, Software Consutant 作者简介 作者:(美)迈耶斯 译者:侯捷 作者Scott Meyers,是C++领域公认的权威,并对全球客户提供咨询服务。他是Effective C++ 的作者,C++REPORT的知名专栏作家,全球各技术研讨会上级具号召力的讲师。他于1993年拿到布朗大学的计算机科学博士学位。 目录 译序(侯捷) 目录(Contents) 致谢(Acknowledgments. 中文版略) 导读(Introduction) 001 基础议题(Basics) 009 条款1:仔细区别 pointers 和 references 009 Distinguish between pointers and references 条款2:最好使用 C++ 转型操作符 012 Prefer C++-style casts 条款3:绝对不要以polymorphically(多态)方式来处理数组 016 Never treat arrays polymorphically 条款4:非必要不提供 default constructor 019 Avoid gratuitous default constructors 操作符(Operators) 024 条款5:对定制的型别转换函数保持警觉 024 Be wary of user-defined conversion functions 条款6:区别 increment/decrement 操作符的 前置(prefix)和后置(postfix)型式 031 Distinguish between prefix and postfix forms of increment and decrement operators 条款7:千万不要重载 &&, ||, 和 , 操作符 035 Never overload &&, ||, or , 条款8:了解各种不同意义的 new 和 delete 038 Understand the different meanings of new and delete 异常(Exceptions) 044 条款9:利用 destructors 避免泄漏资源 045 Use destructors to prevent resource leaks 条款10:在 constructors 内阻止资源泄漏(resource leaks) 050 Prevent resource leaks in constructors 条款11:禁止异常(exceptions)流出 destructors 之外 058 Prevent exceptions from leaving destructors 条款12:了解「掷出一个 exception」与「传递一个参数」 或「调用一个虚函数」之间的差异 061 Understand how throwing an exception differs from passing a parameter or calling a virtual function 条款13:以 by reference 方式捕捉 exceptions 068 Catch exceptions by reference 条款14:明智运用 exception specifications 072 Use exception specifications judiciously 条款15:了解异常处理(exception handling)的成本 078 Understand the costs of exception handling 效率(Efficiency) 081 条款16:谨记 80-20 法则 082 Remember the 80-20 rule 条款17:考虑使用 lazy evaluation 085 Consider using lazy evaluation 条款18:分期摊还预期的计算成本 093 Amortize the cost of expected computations 条款19:了解暂时对象的来源 098 Understand the origin of temporary objects 条款20:协助完成「返回值优化(RVO)」 101 Facilitate the return value optimization 条款21:利用重载技术(overload)避免隐式型别转换 105 Overload to avoid implicit type conversions 条款22:考虑以操作符复合型式(op=)取代其独身型式(op)107 Consider using op= instead of stand-alone op 条款23:考虑使用其它程序库 110 Consider alternative libraries 条款24:了解 virtual functions、multiple inheritance、virtual base classes、 runtime type identification 所需的成本 113 Understand the costs of virtual functions, multiple inheritance, virtual base classes, and RTTI 技术(Techniques, Idioms, Pattern) 123 条款25:将 constructor 和 non-member functions 虚化 123 Virtualizing constructors and non-member functions 条款26:限制某个 class 所能产生的对象数量 130 Limiting the number of objects of a class 条款27:要求(或禁止)对象产生于 heap 之中 145 Requiring or prohibiting heap-based objects 条款28:Smart Pointers(智能指针) 159 条款29:Reference counting(引用计数) 183 条款30:Proxy classes(替身类、代理类) 213 条款31:让函数根据一个以上的对象型别来决定如何虚化 228 Making functions virtual with respect to more than one object 杂项讨论(Miscellany) 252 条款32:在未来时态下发展程序 252 Program in the future tense 条款33:将非尾端类(non-leaf classes)设计为 抽象类(abstract classes) 258 Make non-leaf classes abstract 条款34:如何在同一个程序中结合 C++ 和 C 270 Understand how to combine C++ and C in the same program 条款35:让自己习惯于标准 C++ 语言 277 Familiarize yourself with the language standard 推荐目 285 auto_ptr 实现代码 291 索引1(General Index) 295 索引2(Index of Example Classes, Functions, and Templtes) 313
如果你准备学,一定要学好,那么我开个单 首先肯定要读一读Bjarne Stroustrup的The Design and Evolution of C++,了解一下这个语言的历史。接下来就可以看别的了,但要不停地回头看这本,看到你不断地学到的新技术是怎么样一点点地被接纳到这个语言中去的。 第一本因人而异,基础好一些的,可以看Stanley B. Lippman的C++ Primer,这本非常地巨大,你打星号的部分可以不要看。基础不太好的,可以看Stanley B.Lippman的Essential C++,这本份量要轻得多,不过四个C++的范型都讲了,而且讲得非常清楚。 第二本应该停止技术层面的东西,静下心来看看Pike和Kernighan的The Practiceof Programming,好好地整理一下,在程序设计中应该有哪些注意的事项。这本非常薄的booklet,可以说是程序员必读的指南。 第三本,就应该是Bruce Eckel写的、候捷译的Thinking in C++,这本每过半年我就要重读一遍。可以说每一章都是写得发人深省的,这本让我感觉到了技术运用的非常高的境界,但是语言非常平实,只要认真地读,即使基础不行,也一定可以懂。我在教课的时候,就是用这本(面对的学生是零基础)。 要更上一层的话,就要慢一步,先要把握C++设计习惯的良好。这是ScottMeyers的Effective C++和More Effective C++带给我们的无尽收益。我MoreEffective C++不起,只好花了10块钱复印装订了一本"线装本",看起来像葵花宝典(;-))。这两本是真正的经典,作者对C++的纯熟,使得语言的风格读起来简直是如饴甜,就像他站在对面在讲课。我手中有这两本的原版CD,如果有兴趣,可以发E-mail到sjtu@263.net或在饮水思源投条儿给gaobo索要,只要您提供光盘我就给免费烧。如果你已经深刻地理解了Effective C++和More EffectiveC++,那你可以发现,你在众人中已经是鸡群之鹤。可以指导项目运作了,可以编写一切你做的程序了,可以指出别人看起来不错的代码的大小问题了。如果你能一眼看出有人的代码是对应于"条款27"或"条款M6",那你可真是让本人刮目了。
代码静态分析工具PC-LINT安装配置 PC-Lint是C/C++软件代码静态分析工具,你可以把它看作是一种更加严格的编译器。它不仅可以检查出一般的语法错误,还可以检查出那些虽然符合语法要求但不易发现的潜在错误。 C语言的灵活性带来了代码效率的提升,但相应带来了代码编写的随意性,另外C编译器不进行强制类型检查,也带来了代码编写的隐患。PCLint识别并报告C语言中的编程陷阱和格式缺陷的发生。它进行程序的全局分析,能识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针,冗余的代码,等等。软件除错是软件项目开发成本和延误的主要因素。PClint能够帮你在程序动态测试之前发现编码错误。这样消除错误的成本更低。 使用PC-Lint在代码走读和单元测试之前进行检查,可以提前发现程序隐藏错误,提高代码质量,节省测试时间。并提供编码规则检查,规范软件人员的编码行为。 由于PC-LINT对于一般程序员来说可能比较陌生,有好多人安装了也不知道怎样配置和使用。 下面我就根据自己的安装和配置心得对PC-Lint的安装、配置及使用进行下详细说明.本人主要介绍了将PC-Lint集成到VC++6.0和SourceInsight的方法和步骤。 (一)Windows下C/C++开发工具中,VC6使用较为普遍,因此这里先讲下VC6.0环境中集成pclint的步骤. 首先, 当然要下载软件,正版软件要200多$呢,不起!所以只好网上找免费的拉。从http://www.61ic.com/down/othe/pclint.rar处可以下载到一个8.0版本的pclint. 1.将pclint.rar解压至c:\, 这样lint文件就位与c:\pclint(安装目录)下了。 2.将c:\pclint\lnt 下的3个文件lib-w32.lnt,env-vc6.lnt,co-msc60.lnt拷贝至c:\pclint下, 再在安装目录下创建std.lnt和options.lnt两个文件,其中std.lnt的内容如下 // contents of std.lnt c:\pclint\co-msc60.lnt c:\pclint\lib-w32.lnt c:\pclint\options.lnt -si4 -sp4 -i"D:\Program Files;D:\Program Files\Microsoft Visual Studio\VC98\Include" //end 其中-i后面的路径名为VC的安装路径和VC Include 文件路径,根据自己的修改便可。 options.lnt 内容可为空,为定制内容,以后需要时再添加。 准备工作做完了,下一步就是要将pclint集成到VC6中去,先配置lint使之能对单个C或C++文件进行检查。 1.打开VC6,tools--->customize-->tools 新建一个名为pclint的项,在下面填入 command: C:\pclint\lint-nt.exe arguments: -u c:\pclint\std.lnt c:\pclint\env-vc6.lnt "$(FilePath)" Use Output Window 打上勾 close 完成。 这个在你VC窗口tools菜单下应该多了一个pclint选项,可以用它来运行lint程序,对你的c/c++代码进行静态检查了。 现在就可以用个小程序测试一下pclint了 //test1.cpp #include class X { int *p; public: X() { p = new int[20]; } void init() { memset( p, 20, 'a' ); } ~X() { delete p; } }; 编译这个文件,看下你的编译器给你多少警告,再运行下lint, 可以自己对比一下。 我的机器上,VC产生0 errors 0 warnings, 而lint程序产生了如下8条警告信息,有些还是很有用处的提示,这里就不一一分析了. test.cpp(12): error 783: (Info -- Line does not end with new-line) test.cpp(7): error 1732: (Info -- new in constructor for class 'X' which has no assignment operator) test.cpp(7): error 1733: (Info -- new in constructor for class 'X' which has no copy constru

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧