Effective C++, 2E | Afterword Back to Item 50: Improve your understanding of C++. Continue to Index Afterword If, having digested 50 ways to improve your programs and designs, you still find yourself hungry for C++ guidelines, you may be interested in my second book on the subject, More Effective C++: 35 New Ways to Improve Your Programs and Design. Like Effective C++, More Effective C++ covers material that's essential for effective C++ software development, but Effective C++ focuses more on fundamentals, while More Effective C++ also spends time on newer language features and on advanced programming techniques. You can find detailed information on More Effective C++ including four complete Items, the book's list of recommended reading, and more at the More Effective C++ web site. In case you can't wait, the contents of More Effective C++ are summarized below. Dedication Acknowledgments Introduction Basics 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 Operators 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 &&, ||, or , Item 8: Understand the different meanings of new and delete Exceptions 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 Efficiency 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 Techniques 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 Miscellany 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 Recommended Reading An auto_ptr Implementation General Index Back to Item 50: Improve your understanding of C++. Continue to Index