Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows with Prime
Try Prime
and start saving today with fast, free delivery
Amazon Prime includes:
Fast, FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with Fast, FREE Delivery" below the Add to Cart button.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited Free Two-Day Delivery
- Instant streaming of thousands of movies and TV episodes with Prime Video
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
- Unlimited photo storage with anywhere access
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Buy new:
$54.99$54.99
FREE delivery:
Friday, Dec 15
Ships from
Amazon.com
Sold by
Amazon.com
Returns
Returnable until Jan 31, 2024
Payment
Secure transaction
Buy used: $31.33
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Hands-On Design Patterns with C++: Solve common C++ problems with modern design patterns and build robust applications
| Price | New from | Used from |
- Kindle
$29.49 Read with our free app - Paperback
$31.33 - $54.9912 Used from $27.37 8 New from $54.99
There is a newer edition of this item:
Purchase options and add-ons
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
- An introduction to Inheritance and polymorphism
- Class and function templates
- Memory ownership
- Swap - from simple to subtle
- A Comprehensive Look at Resource Acquisition is Initialization (RAII)
- 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
- Adaptors and Decorators
- Visitor and multiple dispatch
- ISBN-101788832566
- ISBN-13978-1788832564
- PublisherPackt Publishing
- Publication date
2019
January 30
- Language
EN
English
- Dimensions
7.5 x 1.2 x 9.3
inches
- Length
512
Pages
Frequently bought together

Similar items that may ship from close to you
Editorial Reviews
About the Author
Fedor G Pikus is a Chief Engineering Scientist in the Design to Silicon division of Mentor Graphics Corp (Siemens business). His earlier positions included a Senior Software Engineer at Google and a Chief Software Architect for Calibre PERC, LVS, DFM at Mentor Graphics. He joined Mentor Graphics in 1998 when he made a switch from academic research in computational physics to the software industry. Fedor is a recognized expert on high-performance computing and C++, he presented his works at CPPCon, SD West, DesignCon, in Software Development Journal, and is also an O'Reilly author. His responsibilities as a Chief Scientist include planning the long-term technical direction of Calibre products, directing and training the engineers who work on these products, design and architecture of the software, and research in the new design and software technologies. Fedor has over 25 patents and over 100 papers and conference presentations on physics, EDA, software design, and C++ language.
Product details
- Publisher : Packt Publishing (January 30, 2019)
- Language : English
- Paperback : 512 pages
- ISBN-10 : 1788832566
- ISBN-13 : 978-1788832564
- Item Weight : 1.92 pounds
- Dimensions : 7.5 x 1.16 x 9.25 inches
- Best Sellers Rank: #1,090,652 in Books (See Top 100 in Books)
- #265 in C++ Programming Language
- #683 in Computer Programming Languages
- #1,149 in Microsoft Programming (Books)
- Customer Reviews:
Important information
To report an issue with this product, click here.
About the author

Fedor G Pikus is a Technical Fellow at Siemens Digital Industries Software and the director of the Advanced Projects Team. His earlier positions included a Senior Software Engineer at Google and a Chief Software Architect for Calibre PERC, LVS, and DFM at Mentor Graphics. He joined Mentor Graphics in 1998 when he made a switch from academic research in computational physics to the software industry. Fedor is a recognized expert on high-performance computing and C++, he presented his works at C++Now, CPPCon, SD West, DesignCon, in Software Development Journal, and is also an O'Reilly author. His responsibilities as a Chief Scientist include planning the long-term technical direction of Calibre products, directing and training the engineers who work on these products, design, and architecture of the software, and research in new design and software technologies. Fedor has over 25 patents and over 100 papers and conference presentations on physics, EDA, software design, and C++ language.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
The author made the great work: his explanation is clear and accurate. The examples are short and extremely focused on specific topics.
In my opinion, the book is in the same area as the Andrei Alexandrescu's book, named "Modern C++ Design: Generic Programming and Design Patterns Applied", but the Fedor's book is the newest one and much close to a regular developer.
It would be nice to add a problem solving questions at the end of the each topic along with the theory questions. Which will help developers to practice the topic and solve the problems before moving to the next topic.
Review:
The chapters are organized properly. It starts with tricks in C++, inheritance, templates and goes to design patterns, and advanced design patterns(adapters and decorators, policy based design)
The book is an exceptional guide for both intermediate and pro developers. The writing style is clear, concise, and engaging, making complex concepts easy to grasp.
The examples provided are well-thought-out and demonstrate the practical implementation of each pattern, making it easier for readers to comprehend. The book also covers challenges faced and issues during the implementation. I would recommend this book to developers who want to enhance their knowledge in design patterns and understand the concepts in depth.
Top reviews from other countries
Viele der im Buch gemachten Vorschläge werden von Mikro-Benchmarking (mithilfe
der Google-Benchmark-Library) begleitet.
Das Buch ist also für C++-Programmierer interessant, die Performance-Probleme
zu lösen haben und die üblichen Optimierungsmethodem (wie etwa
Re-Implementierung mit einem effizienteren Algorithmus oder Parallelisierung)
ausgeschöpft haben bzw. sich auf darüber hinaus gehende Möglichkeiten vorbereiten wollen.
Das Buch ist in einzelne Kapitel gegliedert, die sich unabhängig voneinander
lesen lassen.
UML-Diagramme werden im Buch nicht verwendet. Mit ihnen lassen sich C++-Feinheiten wie
Pointer und References oder unterschiedlich Template-Varianten auch nicht gut darstellen, sodass mir diesbezüglich nichts abgeht. Außerdem wird in der C++-Welt sehr viel Wert auf das Lesen von Source-Code gelegt.
Positiv empfinde ich, dass im wesentlichen der gleiche moderne Programming-Style
verwendet wird wie bei cppreference oder auf isocpp.
Natürlich hat das Buch auch aus meiner Sicht ein paar Fehler:
Als (auch altersbedingten) Fehlsichtigen stört mich, dass die Code-Besipiele
in einem deutlich kleineren Font gesetzt sind, als der für den Text verwendete Font. Monospaced Fonts, wie sie bei Code-Beispielen üblich sind, benötigen an sich ja mehr Platz und daher wird
eine kleinere Font-Size verwendet. Aber eine Font-size zu verwenden, die nur zwei Drittel der Zeilenhöhe hat wie der normale Text, ist hier zuviel des Guten. Dass die Code-Beispiele bei Packt downgeloadet werden können, ist nur ein mangelhafter Ersatz für die leichte Lesbarkeit.
Ein kleines Hoppala ist dem Lektorat entgangen: im Kapitel über Singletons
wird statt des Reference-Declarators "&" (das Et-Zeichen, engl. Ampersand) die
HTML/SGML-Entity "&" gedruckt.
Es steht also
Singleton&
anstelle des richtigen
Singleton&
In anderen Kapiteln, in denen References verwendet werden, habe ich diesen Fehler
nicht gesehen. Dafür gibt es in den Code-Beispielen so manchen anderen Typo.
Bei Packt gibt es im Support-Bereich aber eine Druckfehlerliste, die leider
noch ein bisschen unvollständig ist.
Apropos:Diese Rezension kommt nicht aus Deutschland, sondern aus Österreich!
Ich bin jetzt seit 2003 Amazon-Kunde und halte von der deutschen Unsitte nichts,
plötzlich geduzt zu werden. Ich werde daher in Hinkunft in jenen Produktbereichen, in
denen Amazon das Duzen der Kunden einführt, meine Einkäufe deutlich reduzieren.
Wer etwas Zeit investiert lernt hier trotzdem einige neue Ideen und Tipps für seinen Code. Da mir aktuell eine Alternative in C++ zu diesem Buch nicht bekannt ist, kann ich es durchaus empfehlen, wenn man sich mal in solche patterns einlesen will.








