Learning C++ doesn't need to be difficult! Build your knowledge brick by brick with C++ Crash Course. C++ is one of the most widely used languages for real-world, performance-based software. In the hands of a knowledgeable programmer, C++ can produce small, efficient, and readable code. Designed for intermediate to advanced programmers, C++ Crash Course gets you straight to the core of C++20, the most modern revision of the ISO standard. You'll learn everything from types and functions to the object life cycle and expressions. Then you'll discover the high-quality, full-featured facilities available to you through the C++ Standard Library and Boost Libraries. You'll cover special utility classes, data structures, and algorithms, and learn how to manipulate file systems and build high-performance programs that communicate over networks. C++ Crash Course has well over 500 code samples and nearly 100 exercises to help you practice as you learn. Throughout your journey, you'll:
- Learn unit testing and mocking by programming the brakes on an autonomous vehicle using test-driven development
- Invent your own string class to learn about object lifetimes, ownership, copy, and move semantics
- Discover runtime polymorphism by creating a logging system for bank transactions
- Design your own heap for memory management while learning about dynamic allocation
- Investigate program parameters passing by crafting an alphanumeric histogram generator
- Build a recursive directory-listing program while studying the filesystem library
- Architect a multithreaded integer factorization during your study of concurrency and parallelism
- Make an HTTP client and a TCP echo server using Boost Asio
This second edition is completely revised to reflect the latest in C++ code and practices. New and updated coverage includes new chapters on coroutines, concepts, ranges, and writing modules. There are expanded discussions of popular features, including tools for managing builds and dependencies. After reading this book, youʼll have a strong, working knowledge of how to employ modern C++ to build high-performance, cross-platform applications.