《moreeffectivec英文版》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:
  • 出 版 社:
  • 出版年份:2222
  • ISBN:
  • 页数:0 页
图书介绍:

IntroductionBasics 9

Item 1: Distinguish between pointers and references. 9

Item 2: Prefer C++-style casts. 12

Item 3: Never treat arrays polymorphically. 16

Item 4: Avoid gratuitous default constructors. 19

Operators 24

Item 5: Be wary of user-defined conversion functions. 24

Item 6: Distinguish between prefix and postfix forms of increment and decrement operators. 31

Item 7: Never overload &&, | |, or ,. 35

Item 8: Understand the different meanings of new and delete. 38

Exceptions 44

Item 9: Use destructors to prevent resource leaks. 45

Item 10: Prevent resource leaks in constructors. 50

Item 11: Prevent exceptions from leaving destructors. 58

Item 12: Understand how throwing an exception differs from passing a parameter or calling a virtual function. 61

Item 13: Catch exceptions by reference. 68

Item 14: Use exception specifications judiciously. 72

Item 15: Understand the costs of exception handling. 78

Efficiency 81

Item 16: Remember the 80-20 rule. 82

Item 17: Consider using lazy evaluation. 85

Item 18: Amortize the cost of expected computations. 93

Item 19: Understand the origin of temporary objects. 98

Item 20: Facilitate the return value optimization. 101

Item 21: Overload to avoid implicit type conversions. 105

Item 22: Consider using op= instead of stand-alone op. 107

Item 23: Consider alternative libraries. 110

Item 24: Understand the costs of virtual functions, multiple inheritance, virtual base classes, and RTII. 113

Techniques 123

Item 25: Virtualizing constructors and non-member functions. 123

Item 26: Limiting the number of objects of a class. 130

Item 27: Requiring or prohibiting heap-based objects. 145

Item 28: Smart pointers. 159

Item 29: Reference counting. 183

Item 30: Proxy classes. 213

Item 31: Making functions virtual with respect to more than one object. 228

Miscellany 252

Item 32: Program in the future tense. 252

Item 33: Make non-leaf classes abstract. 258

Item 34: Understand how to combine C++ and C in the same program. 270

Item 35: Familiarize yourself with the language standard. 277

Recommended Reading 285

An auto_ptr Implementation 291

General Index 295

Index of Example Classes, Functions, and Templates 313