Scott Meyersis one of the world's foremost authorities on C++, providing training and consulting services to clients worldwide. He is the author of the best-sellingEffective C++series of books (Effective C++,More Effective C++, andEffective STL) and of the innovativeEffective C++CD. He is consulting editor for Addison Wesley's Effective Software Development Series and serves on the Advisory Board for The C++ Source (more >>
Scott Meyersis one of the world's foremost authorities on C++, providing training and consulting services to clients worldwide. He is the author of the best-sellingEffective C++series of books (Effective C++,More Effective C++, andEffective STL) and of the innovativeEffective C++CD. He is consulting editor for Addison Wesley's Effective Software Development Series and serves on the Advisory Board for The C++ Source (http://www.artima.com/cppsource). He holds a Ph.D. in Computer Science from Brown University. His web site ishttp://www.aristeia.com.
Praise for Scott Meyers’ first book,Effective C++:
“I heartily recommendEffective C++to anyone who aspires to mastery of C++ at the intermediate level or above.”
– The C/C++ User’s Journal
From the author of the indispensableEffective C++, here are 35 new ways to improve your programs and designs. Drawing on years of experience, Meyers explains how to write software that ismore effective: more efficient, more robust, more consistent, more portable, and more reusable. In short, how to write C++ software that’s just plain better.
More Effective C++includes:
- Proven methods for improving program efficiency, including incisive examinations of the time/space costs of C++ language features
- Comprehensive descriptions of advanced techniques used by C++ experts, including placement new, virtual constructors, smart pointers, reference counting, proxy classes, and double-dispatching
- Examples of the profound impact of exception handling on the structure and behavior of C++ classes and functions
- Practical treatments of new language features, including bool, mutable, explicit, namespaces, member templates, the Standard Template Library, and more. If your compilers don’t yet support these features, Meyers shows you how to get the job done without them.
More Effective C++is filled with pragmatic, down-to-earth advice you’ll use every day. LikeEffective C++before it,More Effective C++is essential reading for anyone working with C++.
Acknowledgments xi
Introduction 1
Basics 9
Item 1: Distinguish between pointers and references. 9
Item 2: Prefer C++-style casts. 12
Item 3: Never treat arrays polymorphically. 16
Item 4: Avoid gratuitous default constructors. 19
Operators 24
Item 5: Be wary of user-defined conversion functions. 24
Item 6: Distinguish between prefix and postfix forms of increment and decrement operators. 31
Item 7: Never overload &&, , or ,. 35
Item 8: Understand the different meanings of new and delete. 38
Exceptions 44
Item 9: Use destructors to prevent resource leaks. 45
Item 10: Prevent resource leaks in constructors. 50
Item 11: Prevent exceptions from leaving destructors. 58
Item 12: Understand how throwing an exception differs from passing a parameter or calling a virtual function. 61
Item 13: Catch exceptions by reference. 68
Item 14: Use exception specifications judiciously. 72
Item 15: Understand the costs of exception handling. 78
Efficiency 81
<< less