C++

Learn modern C++ (C++20/23): types, functions, pointers, RAII and smart pointers, classes and move semantics, the STL, templates, concepts and safe code.

Start course →

What you'll learn

  • Compile and structure C++ programs with headers, source files, namespaces and warnings.
  • Use types, functions, references and parameter passing correctly in modern C++.
  • Manage memory and resources safely with RAII, containers and smart pointers.
  • Design classes with constructors, copy and move semantics, inheritance and virtual functions.
  • Use the standard library: containers, algorithms, lambdas, ranges and vocabulary types.
  • Write generic and robust code with templates, concepts, exceptions, threads and sanitizers.

Syllabus

Getting Started with Modern C++

  1. What C++ Is and Where It Is Used
  2. Compiling, Linking and Warnings
  3. Types, Variables, const and auto

Control Flow, Functions and Program Structure

  1. Control Flow and Range-Based Loops
  2. Functions and Parameter Passing
  3. Headers, Source Files, Namespaces and the ODR

Memory, Pointers and RAII

  1. Stack, Heap and Object Lifetime
  2. Pointers and References
  3. RAII and Smart Pointers

Classes, Copying and Moving

  1. Classes, Constructors and Destructors
  2. Copy and Move Semantics and the Rule of Zero, Three and Five
  3. Inheritance, Virtual Functions and Polymorphism

The Standard Library

  1. Containers and Their Costs
  2. Iterators, Algorithms, Lambdas and Ranges
  3. Vocabulary Types: optional, variant, string_view and span

Templates and Generic Programming

  1. Function and Class Templates
  2. Concepts and Constraints (C++20)
  3. auto, decltype, constexpr and Compile-Time Programming

Errors, Concurrency and Undefined Behaviour

  1. Exceptions, noexcept and std::expected
  2. Threads, Mutexes and Atomics
  3. Undefined Behaviour, Sanitizers and Common Bugs

Building, Competitive Programming and Revision

  1. Projects with CMake and Package Managers
  2. C++ for DSA and Competitive Programming
  3. Modern C++ Guidelines
  4. Revision and Interview Questions