Introduction
Why C++?
C++ is one of the most powerful and widely deployed programming languages in history. Bjarne Stroustrup created it at Bell Labs starting in 1979 as "C with Classes," and the name C++ (the increment operator applied to C) came in 1983.
- Systems-level power -- C++ gives you manual memory control, zero-overhead abstractions, and direct hardware access — the same capabilities as C.
- Object-oriented -- Classes, inheritance, and polymorphism let you model complex systems with clear structure.
- Generic programming -- Templates let you write code once that works for any type, powering the entire Standard Library.
- The Standard Library --
vector,string,map,algorithm,thread— a comprehensive toolkit built in. - Zero overhead -- Abstractions in C++ cost nothing at runtime. If you don't use it, you don't pay for it.
The Story
C++ grew from the frustration that C, while powerful, lacked the tools to manage the complexity of large software projects. Stroustrup added classes (from Simula), virtual functions, operator overloading, and eventually templates — turning C into a multi-paradigm language.
Major standardization milestones:
- C++98 — first standard, templates, STL
- C++11 — auto, lambda, range-based for, move semantics, smart pointers
- C++14/17 — refinements and new library features
- C++20 — concepts, ranges, coroutines, modules
Who Uses C++
C++ powers some of the most demanding software in the world:
- Game engines — Unreal Engine, id Tech, Frostbite are written in C++
- Browsers — Chrome (V8, Blink), Firefox (Gecko) use C++ for performance-critical paths
- Databases — MySQL, MongoDB, ClickHouse are C++
- Scientific computing — LLVM, TensorFlow, OpenCV
- Finance — High-frequency trading systems where microseconds matter
What You Will Learn
This course contains 15 lessons organized into 6 chapters:
- C++ Basics -- Hello C++, variables and types, string operations.
- Control Flow -- Conditionals and loops including the range-based for.
- Functions -- Overloading, default arguments, and references.
- Classes -- Classes, constructors, and encapsulation.
- Inheritance -- Inheritance and virtual functions (polymorphism).
- Templates & STL -- Function templates and
std::vector.
Let's get started.