[Trial version] Effective C++ Third Edition 55 Specific Ways to Improve Your Programs and Designs
[Trial version] Table of Contents
[Trial version] Copyright
[Trial version] Praise for Effective C++, Third Edition
[Trial version] Addison-Wesley Professional Computing Series
[Trial version] Preface
[Trial version] Acknowledgments
[Trial version] Introduction
[Trial version] Terminology
[Trial version] Chapter 1. Accustoming Yourself to C++
[Trial version] Item 1: View C++ as a federation of languages
[Trial version] Item 2: Prefer consts, enums, and inlines to #defines
[Trial version] Item 3: Use const whenever possible
[Trial version] Item 4: Make sure that objects are initialized before they're used
[Trial version] Chapter 2. Constructors, Destructors, and Assignment Operators
[Trial version] Item 5: Know what functions C++ silently writes and calls
[Trial version] Item 6: Explicitly disallow the use of compiler-generated functions you do not want
[Trial version] Item 7: Declare destructors virtual in polymorphic base classes
[Trial version] Item 8: Prevent exceptions from leaving destructors
[Trial version] Item 9: Never call virtual functions during construction or destruction
[Trial version] Item 10: Have assignment operators return a reference to *this
[Trial version] Item 11: Handle assignment to self in operator=
[Trial version] Item 12: Copy all parts of an object
[Trial version] Chapter 3. Resource Management
[Trial version] Item 13: Use objects to manage resources.
[Trial version] Item 14: Think carefully about copying behavior in resource-managing classes.
[Trial version] Item 15: Provide access to raw resources in resource-managing classes.
[Trial version] Item 16: Use the same form in corresponding uses of new and delete.
[Trial version] Item 17: Store newed objects in smart pointers in standalone statements.
[Trial version] Chapter 4. Designs and Declarations
[Trial version] Item 18: Make interfaces easy to use correctly and hard to use incorrectly
[Trial version] Item 19: Treat class design as type design
[Trial version] Item 20: Prefer pass-by-reference-to-const to pass-by-value
[Trial version] Item 21: Don't try to return a reference when you must return an object
[Trial version] Item 22: Declare data members private
[Trial version] Item 23: Prefer non-member non-friend functions to member functions
[Trial version] Item 24: Declare non-member functions when type conversions should apply to all parameters
[Trial version] Item 25: Consider support for a non-throwing swap
[Trial version] Chapter 5. Implementations
[Trial version] Item 26: Postpone variable definitions as long as possible.
[Trial version] Item 27: Minimize casting.
[Trial version] Item 28: Avoid returning "handles" to object internals.
[Trial version] Item29: Strive for exception-safe code.
[Trial version] Item 30: Understand the ins and outs of inlining.
[Trial version] Item31: Minimize compilation dependencies between files.
[Trial version] Chapter 6. Inheritance and Object-Oriented Design
[Trial version] Item 32: Make sure public inheritance models "is-a."
[Trial version] Item 33: Avoid hiding inherited names
[Trial version] Item 34: Differentiate between inheritance of interface and inheritance of implementation
[Trial version] Item 35: Consider alternatives to virtual functions
[Trial version] Item 36: Never redefine an inherited non-virtual function
[Trial version] Item 37: Never redefine a function's inherited default parameter value
[Trial version] Item 38: Model "has-a" or "is-implemented-in-terms-of" through composition
[Trial version] Item 39: Use private inheritance judiciously
[Trial version] Item 40: Use multiple inheritance judiciously
[Trial version] Chapter 7. Templates and Generic Programming
[Trial version] Item 41: Understand implicit interfaces and compile-time polymorphism
[Trial version] Item 42: Understand the two meanings of typename
[Trial version] Item 43: Know how to access names in templatized base classes
[Trial version] Item 44: Factor parameter-independent code out of templates
[Trial version] Item 45: Use member function templates to accept "all compatible types."
[Trial version] Item 46: Define non-member functions inside templates when type conversions are desired
[Trial version] Item 47: Use traits classes for information about types
[Trial version] Item 48: Be aware of template metaprogramming
[Trial version] Chapter 8. Customizing new and delete
[Trial version] Item 49: Understand the behavior of the new-handler
[Trial version] Item 50: Understand when it makes sense to replace new and delete
[Trial version] Item 51: Adhere to convention when writing new and delete
[Trial version] Item 52: Write placement delete if you write placement new
[Trial version] Chapter 9. Miscellany
[Trial version] Item 53: Pay attention to compiler warnings.
[Trial version] Item 54: Familiarize yourself with the standard library, including TR1
[Trial version] Item.55: Familiarize yourself with Boost.
[Trial version] Appendix A. Beyond Effective C++
[Trial version] Appendix B. Item Mappings Between Second and Third Editions
[Trial version] Index
[Trial version] index_SYMBOL
[Trial version] index_A
[Trial version] index_B
[Trial version] index_C
[Trial version] index_D
[Trial version] index_E
[Trial version] index_F
[Trial version] index_G
[Trial version] index_H
[Trial version] index_I
[Trial version] index_J
[Trial version] index_K
[Trial version] index_L
[Trial version] index_M
[Trial version] index_N
[Trial version] index_O
[Trial version] index_P
[Trial version] index_R
[Trial version] index_S
[Trial version] index_T
[Trial version] index_U
[Trial version] index_V
[Trial version] index_W
[Trial version] index_X
[Trial version] index_Z