Effective C++ 笔记

Accustoming Yourself to C++

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

Things to Remember

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

Things to Remember

Item 3: Use const whenever possible.

Things to Remember

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

Things to Remember

Constructors, Destructors, and Assignment Operators

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

Things to Remember

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

Things to Remember

Item 7: Declare destructors virtual in polymorphic base classes.

Things to Remember

Item 8: Prevent exceptions from leaving destructors.

Things to Remember

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

Things to Remember

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

Things to Remember

Item 11: Handle assignment to self in operator=.

Things to Remember

Item 12: Copy all parts of an object.

Things to Remember

Resource Management

Item 13: Use objects to manage resources.

Things to Remember

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

Things to Remember

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

Things to Remember

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

Things to Remember

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

Things to Remember

Designs and Declarations

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

Things to Remember

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

Things to Remember

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

Things to Remember

Item 22: Declare data members private.

Things to Remember

Implementations

Item 26: Postpone variable definitions as long as possible.

Things to Remember

Item 28: Avoid returning “Handles” to object internals.

Things to Remember

Inheritance and Object-Oriented Design

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

Things to Remember

Templates and Generic Programming

Item 41: Understand implicit interfaces and compiler-time polymorphism.

Things to Remember

Customizing new and delete

Miscellany

Item 53: Pay attention to compiler warnings.

Things to Remember