Item 1. Distinguish between pointers and references -- Item 2. Prefer C+++-style casts -- Item 3. Never treat arrays polymorphically -- Item 4. Avoid gratuitous default constructors -- Item 5. Be wary of user-defined conversion functions -- Item 6. Distinguish between prefix and postfix forms of increment and decrement operators -- Item 7. Never overload & &, [actual symbol not reproducible] -- Item 8. Understand the different meanings of new and delete -- Item 9. Use destructors to prevent resource leaks -- Item 10. Prevent resource leaks in constructors -- Item 11. Prevent exceptions from leaving destructors -- Item 12. Understand how throwing an exception differs from passing a parameter or calling a virtual function -- Item 13. Catch exceptions by reference -- Item 14. Use exception specifications judiciously -- Item 15. Understand the costs of exception handling -- Item 16. Remember the 80-20 rule -- Item 17. Consider using lazy evaluation -- Item 18. Amortize the cost of expected computations -- Item 19. Understand the origin of temporary objects -- Item 20. Facilitate the return value optimization -- Item 21. Overload to avoid implicit type conversions -- Item 22. Consider using op= instead of stand-alone op -- Item 23. Consider alternative libraries -- Item 24. Understand the costs of virtual functions, multiple inheritance, virtual base classes, and RTTI -- Item 25. Virtualizing constructors and non-member functions -- Item 26. Limiting the number of objects of a class -- Item 27. Requiring or prohibiting heap-based objects -- Item 28. Smart pointers -- Item 29. Reference counting -- Item 30. Proxy classes -- Item 31. Making functions virtual with respect to more than one object -- Item 32. Program in the future tense -- Item 33. Make non-leaf classes abstract -- Item 34. Understand how to combine C++ and C in the same program -- Item 35. Familiarize yourself with the language standard -- An autoptṟ Implementation
0
SUMMARY OR ABSTRACT
Text of Note
Meyers includes proven methods for improving program efficiency, comprehensive descriptions of advanced techniques such as virtual constructors, proxy classes and double-dispatching, and examples of the profound impact of exception handling