Book description
“We live in a time when, perhaps surprisingly, the best
printed works on C++ are just now emerging. This is one of those
works. Although C++ has been at the forefront of innovation and
productivity in software development for more than two decades, it
is only now being fully understood and utilized. This book is one
of those rare contributions that can bear repeated study by
practitioners and experts alike. It is not a treatise on the arcane
or academic—rather it completes your understanding of things
you think you know but will bite you sooner or later until you
really learn them. Few people have mastered C++ and software design
as well as Steve has; almost no one has such a level head as he
when it comes to software development. He knows what you need to
know, believe me. When he speaks, I always listen—closely. I
invite you to do the same. You (and your customers) will be glad
you did.”
—Chuck Allison, editor, The C++ Source
“Steve taught me C++. This was back in 1982 or 1983, I
think—he had just returned from an internship sitting with
Bjarne Stroustrup inventor of C++ at Bell Labs. Steve is one of the
unsung heroes of the early days, and anything Steve writes is on my
A-list of things to read. This book is an easy read and collects a
great deal of Steve’s extensive knowledge and experience. It
is highly recommended.”
—Stan Lippman, coauthor of C++ Primer, Fourth
Edition
“I welcome the self-consciously non-Dummies approach of a
short, smart book.”
—Matthew P. Johnson, Columbia University
“I agree with the author’s assessment of the types
of programmers. I have encountered the same types in my experience
as a developer and a book like this will go far to help bridge
their knowledge gap.... I think this book complements other books,
like Effective C++ by Scott Meyers. It presents everything
in a concise and easy-to-read style.”
—Moataz Kamel, senior software designer, Motorola
Canada
“Dewhurst has written yet another very good book. This
book should be required reading for people who are using C++ (and
think that they already know everything in C++).”
—Clovis Tondo, coauthor of C++ Primer Answer
Book
What Every Professional C++ Programmer Needs to Know—Pared to Its Essentials So It Can Be Efficiently and Accurately Absorbed
C++ is a large, complex language, and learning it is never entirely easy. But some concepts and techniques must be thoroughly mastered if programmers are ever to do professional-quality work. This book cuts through the technical details to reveal what is commonly understood to be absolutely essential. In one slim volume, Steve Dewhurst distills what he and other experienced managers, trainers, and authors have found to be the most critical knowledge required for successful C++ programming. It doesn’t matter where or when you first learned C++. Before you take another step, use this book as your guide to make sure you’ve got it right!
This book is for you if
You’re no “dummy,” and you need to get quickly up to speed in intermediate to advanced C++
You’ve had some experience in C++ programming, but reading intermediate and advanced C++ books is slow-going
You’ve had an introductory C++ course, but you’ve found that you still can’t follow your colleagues when they’re describing their C++ designs and code
You’re an experienced C or Java programmer, but you don’t yet have the experience to develop nuanced C++ code and designs
You’re a C++ expert, and you’re looking for an alternative to answering the same questions from your less-experienced colleagues over and over again
C++ Common Knowledge covers essential but commonly misunderstood topics in C++ programming and design while filtering out needless complexity in the discussion of each topic. What remains is a clear distillation of the essentials required for production C++ programming, presented in the author’s trademark incisive, engaging style.
Table of contents
- Praise for C++ Common Knowledge
- Title Page
- Copyright Page
- Contents
- Preface
- Acknowledgments
- A Note on Typographical Conventions
- Item 1. Data Abstraction
- Item 2. Polymorphism
- Item 3. Design Patterns
- Item 4. The Standard Template Library
- Item 5. References Are Aliases, Not Pointers
- Item 6. Array Formal Arguments
- Item 7. Const Pointers and Pointers to Const
- Item 8. Pointers to Pointers
- Item 9. New Cast Operators
- Item 10. Meaning of a Const Member Function
- Item 11. The Compiler Puts Stuff in Classes
- Item 12. Assignment and Initialization Are Different
- Item 13. Copy Operations
- Item 14. Function Pointers
- Item 15. Pointers to Class Members Are Not Pointers
- Item 16. Pointers to Member Functions Are Not Pointers
- Item 17. Dealing with Function and Array Declarators
- Item 18. Function Objects
- Item 19. Commands and Hollywood
- Item 20. STL Function Objects
- Item 21. Overloading and Overriding Are Different
- Item 22. Template Method
- Item 23. Namespaces
- Item 24. Member Function Lookup
- Item 25. Argument Dependent Lookup
- Item 26. Operator Function Lookup
- Item 27. Capability Queries
- Item 28. Meaning of Pointer Comparison
- Item 29. Virtual Constructors and Prototype
- Item 30. Factory Method
- Item 31. Covariant Return Types
- Item 32. Preventing Copying
- Item 33. Manufacturing Abstract Bases
- Item 34. Restricting Heap Allocation
- Item 35. Placement New
- Item 36. Class-Specific Memory Management
- Item 37. Array Allocation
- Item 38. Exception Safety Axioms
- Item 39. Exception Safe Functions
- Item 40. RAII
- Item 41. New, Constructors, and Exceptions
- Item 42. Smart Pointers
- Item 43. auto_ptr Is Unusual
- Item 44. Pointer Arithmetic
- Item 45. Template Terminology
- Item 46. Class Template Explicit Specialization
- Item 47. Template Partial Specialization
- Item 48. Class Template Member Specialization
- Item 49. Disambiguating with Typename
- Item 50. Member Templates
- Item 51. Disambiguating with Template
- Item 52. Specializing for Type Information
- Item 53. Embedded Type Information
- Item 54. Traits
- Item 55. Template Template Parameters
- Item 56. Policies
- Item 57. Template Argument Deduction
- Item 58. Overloading Function Templates
- Item 59. SFINAE
- Item 60. Generic Algorithms
- Item 61. You Instantiate What You Use
- Item 62. Include Guards
- Item 63. Optional Keywords
- Bibliography
- Index
- Index of Code Examples
- Inside Back Cover
Product information
- Title: C++ Common Knowledge: Essential Intermediate Programming
- Author(s):
- Release date: February 2005
- Publisher(s): Addison-Wesley Professional
- ISBN: None
You might also like
book
C++ Gotchas: Avoiding Common Problems in Coding and Design
"This may well be the best C++ book I have ever read. I was surprised by …
book
Beyond the C++ Standard Library: An Introduction to Boost
Introducing the Boost libraries: the next breakthrough in C++ programming Boost takes you far beyond the …
book
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond
Abrahams and Gurtovoy have written something close to a classic… marvelous fun to read… Read the …
book
More Exceptional C++
Organized in a practical problem-and-solution format, picks up where the widely acclaimed More Exceptional C++ leaves …