Go from competent C++ developer to skilled designer or architect using this book as your
personal C++ design master class. Updated for the C++20 standard this title will guide you
through the design and implementation of an engaging case study that forms the backdrop for
learning the art of applying design patterns and modern C++ techniques to create a high quality
robust application. Starting with a quick exploration of the requirements for building the
application you'll delve into selecting an appropriate architecture eventually designing and
implementing all of the necessary modules to meet the project's requirements. By the conclusion
of Practical C++ Design you'll have constructed a fully functioning calculator capable of
building and executing on any platform that supports both Qt and C++20. Access to the complete
source code will help speed your learning. Utilize the Model-View-Controller pattern as the
basis for the architecture of the calculator the observer pattern to design an event system
the singleton pattern as you design the calculator's central data repository a reusable stack
the command pattern to design a command system supporting unlimited undo redo the abstract
factory pattern to build a cross-platform plugin infrastructure for extensibility coroutines
to implement a command line interface with a lazy tokenizer and more. After reading and using
this book you'll have begun the transition from C++ programmer to architect. What You Will
Learn Read a specification document and translate it into a practical C++ design using some of
the latest language features from C++20 Understand trade-offs in selecting between alternative
design scenarios Gain practical experience in applying design patterns to realistic development
scenarios Learn how to effectively use language elements of modern C++ to create a lasting
design Develop a complete C++ program from a blank canvas through to a fully functioning cross
platform application Read modify and extend existing high quality code Learn the
fundamentals of API design including class module and plugin interfaces Who This Book Is For
The experienced C++ developer ready to take the next step to becoming a skilled C++ designer.