百度云及其他网盘下载地址:点我

作者简介

Scott Meyers is one of the world's foremost authorities on C++, providing training and consulting services to clients worldwide. He is the author of the best-selling Effective C++ series of books (Effective C++More Effective C++, and Effective STL) and of the innovative Effective C++ CD. He is consulting editor for Addison Wesley's Effective Software Development Series and is a founding member of the Advisory Board for The C++ Source (http://www.artima.com/cppsource). He holds a Ph.D. in Computer Science from Brown University. His web site is http://www.aristeia.com.

目录

Preface  xv

Acknowledgments  xvii

Introduction  1

Chapter 1: Accustoming Yourself to C++  11

Item 1: View C++ as a federation of languages.  11

Item 2: Prefer consts, enums, and inlines to #defines.  13

Item 3: Use const whenever possible.  17

Item 4: Make sure that objects are initialized before they’re used.  26

Chapter 2: Constructors, Destructors, and Assignment Operators  34

Item 5: Know what functions C++ silently writes and calls.  34

Item 6: Explicitly disallow the use of compiler-generated functions you do not want.  37

Item 7: Declare destructors virtual in polymorphic base classes.  40

Item 8: Prevent exceptions from leaving destructors.  44

Item 9: Never call virtual functions during construction or destruction.  48

Item 10: Have assignment operators return a reference to *this.  52

Item 11: Handle assignment to self in operator=.  53

Item 12: Copy all parts of an object.  57

Chapter 3: Resource Management  61

Item 13: Use objects to manage resources.  61

Item 14: Think carefully about copying behavior in resource-managing classes.  66

Item 15: Provide access to raw resources in resource-managing classes.  69

Item 16: Use the same form in corresponding uses of new and delete.  73

Item 17: Store newed objects in smart pointers in standalone statements.  75

Chapter 4: Designs and Declarations  78

Item 18: Make interfaces easy to use correctly and hard to use incorrectly.  78

Item 19: Treat class design as type design.  84

Item 20: Prefer pass-by-reference-to-const to pass-by-value.  86

Item 21: Don’t try to return a reference when you must return an object.  90

Item 22: Declare data members private.  94

Item 23: Prefer non-member non-friend functions to member functions.  98

Item 24: Declare non-member functions when type conversions should apply to all parameters. 102

Item 25: Consider support for a non-throwing swap.  106

Chapter 5: Implementations  113

Item 26: Postpone variable definitions as long as possible.  113

Item 27: Minimize casting.  116

Item 28: Avoid returning “handles” to object internals.  123

Item 29: Strive for exception-safe code.  127

Item 30: Understand the ins and outs of inlining.  134

Item 31: Minimize compilation dependencies between files.  140

Chapter 6: Inheritance and Object-Oriented Design  149

Item 32: Make sure public inheritance models “is-a.”  150

Item 33: Avoid hiding inherited names.  156

Item 34: Differentiate between inheritance of interface and inheritance of implementation.  161

Item 35: Consider alternatives to virtual functions.  169

Item 36: Never redefine an inherited non-virtual function.  178

Item 37: Never redefine a function’s inherited default parameter value.  180

Item 38: Model “has-a” or “is-implemented-in-terms-of” through composition.  184

Item 39: Use private inheritance judiciously.  187

Item 40: Use multiple inheritance judiciously.  192

Chapter 7: Templates and Generic Programming  199

Item 41: Understand implicit interfaces and compile-time polymorphism.  199

Item 42: Understand the two meanings of typename.  203

Item 43: Know how to access names in templatized base classes.  207

Item 44: Factor parameter-independent code out of templates.  212

Item 45: Use member function templates to accept “all compatible types.”  218

Item 46: Define non-member functions inside templates when type conversions are desired.  222

Item 47: Use traits classes for information about types.  226

Item 48: Be aware of template metaprogramming.  233

Chapter 8: Customizing new and delete  239

Item 49: Understand the behavior of the new-handler.  240

Item 50: Understand when it makes sense to replace new and delete.  247

Item 51: Adhere to convention when writing new and delete.  252

Item 52: Write placement delete if you write placement new.  256

Chapter 9: Miscellany  262

Item 53: Pay attention to compiler warnings.  262

Item 54: Familiarize yourself with the standard library, including TR1.  263

Item 55: Familiarize yourself with Boost.  269

Appendix A: Beyond Effective C++  273

Appendix B: Item Mappings Between Second and Third Editions  277

Index  280

百度云及其他网盘下载地址:点我

C++学习书籍推荐《Effective C++ 第三版(英文)》下载的更多相关文章

  1. C语言学习书籍推荐《C Primer Plus(中文版)(第5版)》下载

    普拉塔 (Prata S.) (作者), 云巅工作室 (译者) <C Primer Plus(中文版)(第5版)>共17章,介绍了C语言的基础知识,包括数据类型.格式化输入输出.运算符.表 ...

  2. java虚拟机的学习书籍推荐

    javaEE开发已然是一个老生常谈的话题了,但经典之所以会成为经典,就是因为有可重复琢磨之处,每一次的反复推敲都会有不一样的收获.如果你不满足于做一个只会写if…else…的Java程序员,而是希望更 ...

  3. C++学习书籍推荐《Accelerated C++中文版》下载

    百度云及其他网盘下载地址:点我 媒体推荐 书评 这是一本一流的C++入门书,它采用了一种和实践相结合的方式来解决具体的问题.相比我所见过的其他C++入门书来说,本书以令人惊奇的紧凑格式覆盖了更多的关于 ...

  4. C语言学习书籍推荐《C陷阱与缺陷》下载

    下载地址:点我 凯尼格 (作者), 高巍 (译者) <C和C++经典著作:C陷阱与缺陷>适合有一定经验的C程序员阅读学习,即便你是C编程高手,<C和C++经典著作:C陷阱与缺陷> ...

  5. C语言学习书籍推荐《C和指针 Pointers On C》下载

    <C和指针 POINTERS ON C>提供与C语言编程相关的全面资源和深入讨论.本书通过对指针的基础知识和高 级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去.  全书共18 ...

  6. java学习书籍推荐

    1. Java 语言基础 谈到Java 语言基础学习的书籍,大家肯定会推荐Bruce Eckel 的<Thinking in Java >.它是一本写的相当深刻的技术书籍,Java 语言基 ...

  7. linux学习书籍推荐linux学习书籍推荐

    引用地址:http://www.cnblogs.com/notepi/archive/2013/06/15/3137103.html Linux 学习书目推荐 Linux基础 1.<Linux与 ...

  8. 19年最新 Python0基础学习书籍推荐(内涵PDF地址以及书籍源码)

    去年看过一篇文章,是关于18年的最适合0基础学习的书籍,今年,最新的书籍也已经统计出来.书籍的PDF太过于难找,所以很多PDF都找不到. 仅仅只能找到英文版PDF 本文章统计了18.19并做过对比,在 ...

  9. c++学习书籍推荐《C++沉思录》下载

    百度云及其他网盘下载地址:点我 编辑推荐 经典C++图书,应广大读者的强烈要求再版 目录 第0章 序幕第一篇 动机第1章 为什么我用C++第2章 为什么用C++工作第3章 生活在现实世界中 第二篇 类 ...

  10. c++学习书籍推荐《C++编程思想第一卷》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <C++编程思想>(第1卷)(第2版)第1版荣获"软件开发"杂志评选的1996年度 图书震撼大奖,中文版自2000年推出以来, ...

随机推荐

  1. VisualSVN-5.1.5补丁原创发布

    VisualSVN-5.1.5补丁原创发布 VisualSVN-5.1.5官方安装包.rar  VisualSVN-5.1.5Patch.rar

  2. Visual C++ 编译器自动假定带 .C 扩展名的文件是 C 文件而不是 C++ 文件,并且拒绝 C++ 语法和关键字(c语言只能在大括号最前面申明变量)

    今天在编译OpenGL红宝书附带源码中的light.c文件时遇到一个诡异的问题: 如图light .c,在不做任何修改的情况编译OK.然而只要在某些地方写了可执行代码,则会无法通过编译器编译! (这几 ...

  3. 加快QT工程编译速度(还可给Qt for Android设置)

    一.多核编译 环境:win10, Qt 5.4.1,编译器mingw32 项目: Qt for Android Qt Creator 在编译android项目时不支持预编译,默认cpu单核编译,工程稍 ...

  4. 微信小程序把玩(二十一)switch组件

    原文:微信小程序把玩(二十一)switch组件 switch开关组件使用主要属性: wxml <!--switch类型开关--> <view>switch类型开关</vi ...

  5. 一个Demo让你掌握Android所有控件

    原文:一个Demo让你掌握Android所有控件 本文是转载收藏,侵删,出处:"安卓巴士"      下面给出实现各个组件的源代码: 1.下拉框实现--Spinner packag ...

  6. WIN10以后如果Manifest中不写支持WIN10的话,获取版本号的API获取的是6

    if TOSVersion.Major = 10 then  // 高版本的Delphi(比如Berlin)可以这样写 ShowMessage('Windows 10'); 或者: if Win32M ...

  7. 在Delphi中编辑res文件

    先用记事本编写一个rc的文件.如内容为:_Comms RCData Comms.jpg Comms.jpg为图片名称,然后在这个rc文件和图片拷贝到delphi安装路径的bin文件夹里面,选中这两个文 ...

  8. QSqlQueryModel 居然默认是只读的!

    The model is read-only by default. To make it read-write, you must subclass it and reimplement setDa ...

  9. 一条命令,秒秒钟完成MD5、SHA1校验,这就叫效率!

    相信很多奋斗在运维战线的小伙伴们经常会遇到版本升级之类的问题.笔者之前所在的公司每次进行版本发布的时候都会附带MD5校验哈希值,每次升级之前一般都要核对MD5哈希值的,刚刚开始的时候对Linux并不是 ...

  10. 搜索栏+collectionView实现

      效果图如下:   1.h文件声明方法:   @interface IDSGameRoomSearchPage : UIView @property (nonatomic,weak) BaseVie ...