2018
- Item-41 Understand inplicit interfaces and compile time polymorphism
- Item-40 Use multiple inheritance judiciously
- Item-39 Use private inheritance judiciously
- Item-38 Model 'has-a' or 'is-implemented-in-terms-of' through composition
- Item-37 Never redefine a function's inherited default parameter value
- Item-36 Never redefine an inherited non-virtaul function
- 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