More Effective C++ by Scott Meyers (PDF)

More Effective C++

Scott Meyers
Release at: 1996
Pages: 337
1st Edition/35 New Ways to Improve
Your Programs and Designs
File Size: 9 MB/2 MB
File Type: pdf/epub
Language: English

Description of More Effective C++

More Effective C++ written by Scott Meyers is a great programming book for C++ Programming studies available in ebook (PDF/EPUB) free download. This More Effective C++ book for C++ programmers. C++ programming has nevertheless emerged as the language of choice for systems programming on nearly all major computing platforms. Individuals and companies with challenging programming problems increasingly embrace the language, & the question faced by those who do not use C++ is often when they will start, not if. Standardization of C++ is complete, the breadth and scope of the accompanying library which both subsumes and dwarfs that of C make it possible to write rich, complex programs without sacrificing portability or implementing common data structures and algorithms from scratch.

C++ compilers continue to proliferate, the features they offer continue to expand, & the quality of the code they generate continues to improve. Environments and tools for C++ development grow ever more abundant, robust and powerful. Commercial libraries all and obviate the need to write code in many application areas. As the language has matured & our experience with it has increased, our needs for information about it have changed. In 1990, people wanted to know what C++ programming. By 1992, they wanted to know how to make it work and now C++ programmers ask higher-level questions: How can I design my software so it will adapt to future demands?

How can I improve my coding efficiency without compromising its correctness or making it harder to use? How can I implement sophisticated functionality not supported directly by the language? In this More Effective C++ book, I answer these questions and many others like them. This More Effective C++ book shows how to implement and design C++ software that is more effective: more likely to behave correctly; more robust in the face of exceptions; more efficient; more portable; adapts to change more gracefully; makes better use of language features; works better in a mixed-language environment; is easier to use correctly; is harder to use incorrectly. In short, software that’s just better. You can also get Effective STL.

Content of More Effective C++

Introduction 1

CHAPTER 1: Basics 9

1 ➤ Distinguish between pointers and references. 9
2 ➤ Prefer C++-style casts. 12
3 ➤ Never treat arrays polymorphically. 16
4 ➤ Avoid gratuitous default constructors. 19

CHAPTER 2: Operators 24

5 ➤ Be wary of user-defined conversion functions. 24
6 ➤ Distinguish between prefix and postfix forms of increment and decrement operators. 31
7 ➤ Never overload  && ,  || , or  , . 35
8 ➤ Understand the different meanings of new and delete. 38

CHAPTER 3: Exceptions 44

9 ➤ Use destructors to prevent resource leaks. 45
10 ➤ Prevent resource leaks in constructors. 50
11 ➤ Prevent exceptions from leaving destructors. 58
12 ➤ Understand how throwing an exception differs from passing a parameter or calling a virtual function. 61
13 ➤ Catch exceptions by reference. 68
14 ➤ Use exception specifications judiciously. 72
15 ➤ Understand the costs of exception handling. 78

CHAPTER 4: Efficiency 81

16 ➤ Remember the 80-20 rule. 82
17 ➤ Consider using lazy evaluation. 85
18 ➤ Amortize the cost of expected computations. 93
19 ➤ Understand the origin of temporary objects. 98
20 ➤ Facilitate the return value optimization. 101
21 ➤ Overload to avoid implicit type conversions. 105
22 ➤ Consider using op= instead of stand-alone op. 107
23 ➤ Consider alternative libraries. 110
24 ➤ Understand the costs of virtual functions, multiple inheritance, virtual base classes, and RTTI. 113

CHAPTER 5: Techniques 123

25 ➤ Virtualizing constructors and non-member functions. 123
26 ➤ Limiting the number of objects of a class. 130
27 ➤ Requiring or prohibiting heap-based objects. 145
28 ➤ Smart pointers. 159
29 ➤ Reference counting. 183
30 ➤ Proxy classes. 213
31 ➤ Making functions virtual with respect to more than one object. 228

CHAPTER 6: Miscellany 252

32 ➤ Program in the future tense. 252
33 ➤ Make non-leaf classes abstract. 258
34 ➤ Understand how to combine C++ and C in the same program. 270
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

Also Available

Vim Like a Pro by Tim Ottinger

Effective STL by Scott Meyers

Effective C++ by Scott Meyers 3rd Edition

Effective Modern C++ by Scott Meyers

Introduction to Algorithms by TH Cormen, CE Leiserson RL Rivest & C Stein 3rd Edition
Similar Books