2018
- Item-35 Consider Alternatives to Virtual Functions
- Item-34 Differentiate between inheritance of interface and inheritance of implementation
- Item-33 Avoid hiding inherited names
- Item-32 Make sure public inheritance models "Is-A"
- Item-31 Minimize compilation dependencies between files
- Item-30 Understand ins and outs of inlining
- Item-29 Strive for exception-safe code
- Item-28 Avoid returning handles to object internals
- Item-27 Minimize_casting
- Item-26 Postpone variable definitions as long as possible
- Item-25 Consider support for a non-throwing swap
- Item-24 Declare non-member functions when type conversions should apply to all parameters
- Item-23 Prefer non-member non-friend function to member function
- Item-22 Declare data members private
- Item-21 Don't return a reference when we have to return an object
- Item-20 Perfer pass-by-reference-to-const to pass-by-value
- Item-19 Treat class design as type design
- Item-18 Make interfaces easy to use correctly and hard to use incorrectly
- Item-17 Store newed objects in smart pointers in standalone statements
- Item-16 Use the same form in corresponding uses of new and delete