WHAT THIS BOOK COVERS
Professional C++ uses an approach to C++ programming that will both increase the quality of your
code and improve your programming efficiency. You will find discussions on new C++17 features
throughout this fourth edition. These features are not just isolated to a few chapters or sections;
instead, examples have been updated to use new features when appropriate.
Professional C++ teaches you more than just the syntax and language features of C++. It also
emphasizes programming methodologies, reusable design patterns, and good programming style.
The Professional C++ methodology incorporates the entire software development process, from
designing and writing code, to debugging, and working in groups. This approach will enable you to
master the C++ language and its idiosyncrasies, as well as take advantage of its powerful capabilities
for large-scale software development.
Imagine users who have learned all of the syntax of C++ without seeing a single example of its use.
They know just enough to be dangerous! Without examples, they might assume that all code should
go in the main() function of the program, or that all variables should be global—practices that are
generally not considered hallmarks of good programming.
Professional C++ programmers understand the correct way to use the language, in addition to the
syntax. They recognize the importance of good design, the theories of object-oriented program-
ming, and the best ways to use existing libraries. They have also developed an arsenal of useful code
and reusable ideas.
By reading and understanding this book, you will become a professional C++ programmer. You will
expand your knowledge of C++ to cover lesser-known and often misunderstood language features.
You will gain an appreciation for object-oriented design, and acquire top-notch debugging skills.
Perhaps most important, you will finish this book armed with a wealth of reusable ideas that you
can actually apply to your daily work.
There are many good reasons to make the effort to be a professional C++ programmer, as opposed
to a programmer who knows C++. Understanding the true workings of the language will improve
the quality of your code. Learning about different programming methodologies and processes will
help you to work better with your team. Discovering reusable libraries and common design patterns
will improve your daily efficiency and help you stop reinventing the wheel. All of these lessons will
make you a better programmer and a more valuable employee. While this book can’t guarantee you
a promotion, it certainly won’t hurt.