جزییات کتاب
A comprehensive guide with extensive coverage of concepts such as OOP, functional programming, generic programming, concurrency, and STL along with the latest features of C++Purchase of the print or Kindle book includes a free PDF eBookKey FeaturesDelve into the core patterns and components of C++ to master application designLearn tricks, techniques, and best practices to solve common design and architectural challengesUnderstand the limitation imposed by C++ and how to solve them using design patternsBook DescriptionC++ is a general-purpose programming language designed for efficiency, performance, and flexibility. Design patterns are commonly accepted solutions to well-recognized design problems. In essence, they are a library of reusable components, only for software architecture, and not for a concrete implementation.This book helps you focus on the design patterns that naturally adapt to your needs, and on the patterns that uniquely benefit from the features of C++. Armed with the knowledge of these patterns, you'll spend less time searching for solutions to common problems and tackle challenges with the solutions developed from experience. You'll also explore that design patterns are a concise and efficient way to communicate, as patterns are a familiar and recognizable solution to a specific problem and can convey a considerable amount of information with a single line of code.By the end of this book, you'll have a deep understanding of how to use design patterns to write maintainable, robust, and reusable software.What you will learnRecognize the most common design patterns used in C++Understand how to use C++ generic programming to solve common design problemsExplore the most powerful C++ idioms, their strengths, and their drawbacksRediscover how to use popular C++ idioms with generic programmingDiscover new patterns and idioms made possible by language features of C++17 and C++20Understand the impact of design patterns on the program's performanceWho this book is forThis book is for experienced C++ developers and programmers who wish to learn about software design patterns and principles and apply them to create robust, reusable, and easily maintainable programs and software systems.Table of ContentsAn Introduction to Inheritance and PolymorphismClass and Function TemplatesMemory and OwnershipSwap – From Simple to SubtleA Comprehensive Look at RAIIUnderstanding Type ErasureSFINAE, Concepts, and Overload Resolution ManagementThe Curiously Recurring Template PatternNamed Arguments, Method Chaining, and Builder PatternLocal Buffer OptimizationScopeGuardFriend FactoryVirtual Constructors and FactoriesTemplate pattern and NonVirtual idiomSingleton - A Classic OOP PatternPolicy-Based DesignThe Visitor Pattern and Multiple DispatchAdapters and Decorators