Hands-On Design Patterns with C++: Solve common C++ problems with modern design patterns and build robust applications

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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 eBook

Key Features

  • Delve into the core patterns and components of C++ 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 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 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 their drawbacks
  • Rediscover how to use popular C++ idioms with generic programming
  • Discover new patterns and idioms made possible by language features of C++17 and C++20
  • 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 programs and software systems.

Table of Contents

  1. An Introduction to Inheritance and Polymorphism
  2. Class and Function Templates
  3. Memory and Ownership
  4. Swap – From Simple to Subtle
  5. A Comprehensive Look at RAII
  6. Understanding Type Erasure
  7. SFINAE, Concepts, and Overload Resolution Management
  8. The Curiously Recurring Template Pattern
  9. Named Arguments, Method Chaining, and Builder Pattern
  10. Local Buffer Optimization
  11. ScopeGuard
  12. Friend Factory
  13. Virtual Constructors and Factories
  14. Template pattern and NonVirtual idiom
  15. Singleton - A Classic OOP Pattern
  16. Policy-Based Design
  17. The Visitor Pattern and Multiple Dispatch
  18. Adapters and Decorators

Author(s): Fedor G. Pikus
Edition: 2
Publisher: Packt Publishing
Year: 2023

Language: English
Pages: 626
City: Birmingham, UK
Tags: C++ Programming Language; C++17; C++20; Design Patterns; Object-Oriented Programming; Functional Programming; Generic Programming; Concurrency; Multi-Thread Development; STL; Standard Template Library; RAII

1 An Introduction to Inheritance and Polymorphism
2 Class and Function Templates
3 Memory and Ownership
4 Swap – From Simple to Subtle
5 A Comprehensive Look at RAII
6 Understanding Type Erasure
7 SFINAE, Concepts, and Overload Resolution Management
8 The Curiously Recurring Template Pattern
9 Named Arguments, Method Chaining, and Builder Pattern
10 Local Buffer Optimization
11 ScopeGuard
12 Friend Factory
13 Virtual Constructors and Factories
14 Template pattern and NonVirtual idiom
15 Singleton - A Classic OOP Pattern
16 Policy-Based Design
17 The Visitor Pattern and Multiple Dispatch
18 Adapters and Decorators