Book description
A comprehensive guide with extensive coverage on concepts such as OOP, functional programming, generic programming, and STL along with the latest features of C++
Key Features
- Delve into the core patterns and components of C++ in order to master application design
- Learn tricks, techniques, and best practices to solve common design and architectural challenges
- Understand the limitation imposed by C++ and how to solve them using design patterns
Book Description
C++ is a general-purpose programming language designed with the goals of efficiency, performance, and flexibility in mind. 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.
The focus of this book is on the design patterns that naturally lend themselves to the needs of a C++ programmer, and on the patterns that uniquely benefit from the features of C++, in particular, the generic programming. Armed with the knowledge of these patterns, you will spend less time searching for a solution to a common problem and be familiar with the solutions developed from experience, as well as their advantages and drawbacks. The other use of design patterns is as a concise and an efficient way to communicate. A pattern is a familiar and instantly recognizable solution to specific problem; through its use, sometimes with a single line of code, we can convey a considerable amount of information. The code conveys: "This is the problem we are facing, these are additional considerations that are most important in our case; hence, the following well-known solution was chosen."
By the end of this book, you will have gained a comprehensive understanding of design patterns to create robust, reusable, and maintainable code.
What you will learn
- Recognize the most common design patterns used in C++
- Understand how to use C++ generic programming to solve common design problems
- Explore the most powerful C++ idioms, their strengths, and drawbacks
- Rediscover how to use popular C++ idioms with generic programming
- Understand the impact of design patterns on the program's performance
Who this book is for
This 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 apps.
Table of contents
- Title Page
- Copyright and Credits
- About Packt
- Contributors
- Preface
- An Introduction to Inheritance and Polymorphism
- Class and Function Templates
- Memory Ownership
- Swap - From Simple to Subtle
- A Comprehensive Look at RAII
- Understanding Type Erasure
- SFINAE and Overload Resolution Management
- The Curiously Recurring Template Pattern
- Named Arguments and Method Chaining
- Local Buffer Optimization
- ScopeGuard
- Friend Factory
- Virtual Constructors and Factories
- The Template Method Pattern and the Non-Virtual Idiom
- Singleton - A Classic OOP Pattern
- Policy-Based Design
- Adapters and Decorators
- The Visitor Pattern and Multiple Dispatch
- Assessments
- Other Books You May Enjoy
Product information
- Title: Hands-On Design Patterns with C++
- Author(s):
- Release date: January 2019
- Publisher(s): Packt Publishing
- ISBN: 9781788832564
You might also like
video
Creational Design Patterns in Modern C++
The best way to solve common object-oriented design problems is by implementing design patterns. However, understanding …
book
Hands-On Design Patterns with C++ - Second Edition
A comprehensive guide with extensive coverage of concepts such as OOP, functional programming, generic programming, concurrency, …
book
Design Patterns in Modern C++: Reusable Approaches for Object-Oriented Software Design
Apply modern C++17 to the implementations of classic design patterns. As well as covering traditional design …
book
Template Metaprogramming with C++
Understand how to use modern C++ templates for writing maintainable, robust, and fast software Key Features …