Book description
Take your C++ coding to the next level by leveraging the latest features and advanced techniques to building high performing, reliable applications.
About This Book
- Get acquainted with the latest features in C++ 17
- Take advantage of the myriad of features and possibilities that C++ offers to build real-world applications
- Write clear and expressive code in C++, and get insights into how to keep your code error-free
Who This Book Is For
This book is for experienced C++ developers. If you are a novice C++ developer, then it's highly recommended that you get a solid understanding of the C++ language before reading this book
What You Will Learn
- Write modular C++ applications in terms of the existing and newly introduced features
- Identify code-smells, clean up, and refactor legacy C++ applications
- Leverage the possibilities provided by Cucumber and Google Test/Mock to automate test cases
- Test frameworks with C++
- Get acquainted with the new C++17 features
- Develop GUI applications in C++
- Build portable cross-platform applications using standard C++ features
In Detail
C++ has come a long way and has now been adopted in several contexts. Its key strengths are its software infrastructure and resource-constrained applications. The C++ 17 release will change the way developers write code, and this book will help you master your developing skills with C++. With real-world, practical examples explaining each concept, the book will begin by introducing you to the latest features in C++ 17. It encourages clean code practices in C++ in general, and demonstrates the GUI app-development options in C++. You'll get tips on avoiding memory leaks using smart-pointers. Next, you'll see how multi-threaded programming can help you achieve concurrency in your applications. Moving on, you'll get an in-depth understanding of the C++ Standard Template Library. We show you the concepts of implementing TDD and BDD in your C++ programs, and explore template-based generic programming, giving you the expertise to build powerful applications. Finally, we'll round up with debugging techniques and best practices.By the end of the book, you'll have an in-depth understanding of the language and its various facets.
Style and approach
This straightforward guide will help you level up your skills in C++ programming, be it for enterprise software or for low-latency applications like games. Filled with real-world, practical examples, this book will take you gradually up the steep learning curve that is C++.
Table of contents
- Preface
- C++17 Features
- Standard Template Library
- Template Programming
- Smart Pointers
- Developing GUI Applications in C++
-
Multithreaded Programming and Inter-Process Communication
- Introduction to POSIX pthreads
- Creating threads with the pthreads library
- Does C++ support threads natively?
- How to write a multithreaded application using the native C++ thread feature
- Using std::thread in an object-oriented fashion
- Synchronizing threads
- Concurrency
- Summary
- Test-Driven Development
-
Behavior-Driven Development
- Behavior-driven development
- TDD versus BDD
- C++ BDD frameworks
- The Gherkin language
- Installing cucumber-cpp in Ubuntu
- Feature file
- Spoken languages supported by Gherkin
- The recommended cucumber-cpp project folder structure
- Writing our first Cucumber test case
- Dry running your cucumber test cases
- BDD - a test-first development approach
- Summary
- Debugging Techniques
- Code Smells and Clean Code Practices
Product information
- Title: Mastering C++ Programming
- Author(s):
- Release date: September 2017
- Publisher(s): Packt Publishing
- ISBN: 9781786461629
You might also like
book
Hands-On System Programming with C++
A hands-on guide to making system programming with C++ easy Key Features Write system-level code leveraging …
book
Mastering C++ Multithreading
Master multithreading and concurrent processing with C++ About This Book Delve into the fundamentals of multithreading …
book
Modern C++ Programming Cookbook
Over 100 recipes to help you overcome your difficulties with C++ programming and gain a deeper …
video
Multi-Paradigm Programming with Modern C++
C++ is a multi-paradigm language that lets you solve a problem in different ways, and this …