C++ Programming Language
1366 pages
English
PDF
4.5

C++ Programming Language

C++ Programming Language

Author:

Year:

Summary:

Introduction

The book "The C++ Programming Language" (original title The C++ Programming Language) is not just another textbook. It is a fundamental work written by the creator of the language — Bjarne Stroustrup. The fourth edition, released in 2013, covers the C++11 standard, which became a major milestone in the evolution of the language, adding many modern features: lambda expressions, smart pointers, move semantics, new containers, and much more. The book's volume — 1366 pages — speaks for itself: you have before you an encyclopedia that compresses the author's many years of experience and the evolution of the language into a single, coherent exposition.

This book is not for skimming. It requires thoughtful reading, but rewards the reader with a deep understanding of how C++ works and why it is designed the way it is. On the PythonLib website, we often talk about Python, but knowledge of C++ opens your eyes to how programming languages work "under the hood" and helps you write more efficient code in any language, including Python (especially when it comes to writing C++ extensions or optimizing critical sections).

What is this book about?

The book is divided into several logical parts that sequentially immerse the reader in the world of C++:

  • Introduction and Basics: the author starts with basic concepts — types, variables, expressions, operators, control structures. But even here, the master's touch is felt: explanations are precise, concise, and free of fluff.
  • Object-Oriented Programming: classes, inheritance, polymorphism, virtual functions. Stroustrup doesn't just list syntax; he explains how to properly design class hierarchies so that the code is flexible and maintainable.
  • Standard Library (STL): containers (vector, map, unordered_map), iterators, algorithms, function objects. The author shows how to use the STL to write efficient and safe code, avoiding manual memory management where possible.
  • Modern C++11 Features: lambda expressions, move semantics, rvalue references, smart pointers (unique_ptr, shared_ptr, weak_ptr), multithreading (thread, mutex, future). This is perhaps the most valuable part for those who want to write modern C++.
  • Advanced Topics: templates (including variadic templates and metaprogramming), exception handling, input/output, localization, as well as a discussion of language design and its philosophy.

Who is this book for?

The book is aimed at a wide audience, but it is best suited for:

  • Experienced C and C++ programmers who want to systematize their knowledge and learn about the innovations of C++11.
  • Developers in other languages (Java, C#, Python) who want to study C++ in depth and understand how low-level mechanisms work.
  • Senior students and graduate students studying systems programming, game development, high-load services, or embedded systems.
  • Teachers looking for an authoritative source for preparing C++ courses.

For beginners who are just starting to program, the book may seem too complex and voluminous. They would be better off starting with lighter introductions, such as the book "Programming: Principles and Practice Using C++" by the same Stroustrup, and then moving on to this volume.

What will the reader learn?

After reading the book, you will be able to:

  • Write safe and efficient code in modern C++ (C++11 and newer).
  • Understand how the compiler, linker, and C++ memory model work.
  • Use the standard library to solve typical problems without reinventing the wheel.
  • Apply object-oriented and generic programming in practice.
  • Work with multithreading and synchronization.

Recommendations