Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

TrainSec

Modern C++ Programming course

via TrainSec

Overview

Modern C++ Programming Masterclass is a comprehensive course designed to equip developers with the essential and advanced skills needed to write efficient, robust, and modern C++ code. Whether you’re aiming to build large-scale applications, simple tools, or conduct research, this course offers a structured journey through the language’s fundamentals and its modern features.

Syllabus

  • Introduction and Overview
    • Introduction 
    • Course Contents
    • Resources
    • C++ProgrammingMasterClassLabs
    • C++ Programming Masterclass
  • 1: Introduction to C++
    • C++ Overview   Preview
    • C++ Hello World • 7 mins
    • Builing and Tooling • 26 mins
    • External Libraries • 8 mins
    • Static and Dynamic Linking • 14 mins
    • Package Managers • 9 mins
  • 2: Language Fundamentals
    • Including Files • 18 mins
    • Macros   Preview
    • Conditional Compilation and Pragmas • 6 mins
    • Integral Data Types • 9 mins
    • Variables • 23 mins
    • loating Point Data Types • 5 mins
    • Character Data Types • 2 mins
    • sizeof and const • 5 mins
    • Literals • 24 mins
    • Arrays • 11 mins
    • Pointers • 42 mins
    • Pointer Arithmetic • 13 mins
    • References • 23 mins
    • void and void Pointers • 3 mins
    • const and Pointers • 12 mins
    • Classic Enums • 12 mins
    • Scoped Enums • 7 mins
    • the volatile Qualifier • 7 mins
    • Arithmetic Operators • 5 mins
    • Relational and Logical Operators • 7 mins
    • Bitwise Operators • 14 mins
    • Assignment Operators • 6 mins
    • Operators Precedence and Associativity • 4 mins
    • Expressions • 1 min
    • Modulo, Division and Integral Types • 2 mins
    • Control Flow - If Statement • 8 mins
    • Initializers in If Expressions • 6 mins
    • Control Flow - the Switch Statement • 8 mins
    • Control Flow - While and Do While • 5 mins
    • Loop Control • 4 mins
    • Control Flow - the for Loop • 6 mins
    • Functions • 14 mins
    • Trailing Return Type Syntax • 7 mins
    • the main Function • 15 mins
    • Labs Solutions Walkthrough • 26 mins
    • Passing Arguments to Functions • 26 mins
    • Inline Functions • 6 mins
    • Recursive Functions • 8 mins
    • constexpr • 12 mins
    • Function Overloading • 5 mins
    • Default Arguments • 3 mins
    • Function Argument Matching • 13 mins
    • the Stack and the Heap • 7 mins
    • Basic new and delete Usage • 24 mins
    • Namespaces • 17 mins
    • Casting • 21 mins
  • 3: Object Oriented Programming
    • Object Orientation • 7 mins
    • Classes • 11 mins
    • Creating Objects • 22 mins
    • Constructors • 20 mins
    • Multi-Dimensional Arrays • 5 mins
    • the Conditional Operator • 5 mins
    • Additional Module 2 Labs Solutions Walkthrough • 1h
    • Review and Anonymous Objects • 28 mins
    • Delegating Constructors • 7 mins
    • const Member Functions and the mutable Keyword • 15 mins
    • the this Keyword • 20 mins
    • Member Visibility • 10 mins
    • static Members • 19 mins
    • Explicit Constructors • 8 mins
    • Destructors • 12 mins
    • Inheritance • 38 mins
    • Polymorphism • 18 mins
    • More Polymorphism • 22 mins
    • Abstract Types • 10 mins
    • Copying and Moving • 10 mins
    • Copy Constructor and Copy Assignment • 34 mins
    • Move Semantics • 21 mins
    • Move Constructor and Move Assignment • 24 mins
    • Making Things Move • 8 mins
    • Defaulted and Deleted Methods • 16 mins
    • Object Reuse • 3 mins
    • Forward Declarations • 4 mins
    • Simple Structure Initialization • 5 mins
    • Unions • 9 mins
    • Bit Fields • 3 mins
    • Nested Types • 4 mins
  • 4: Operator Overloading
    • Overview • 5 mins
    • Member vs. Free Functions • 3 mins
    • Unary Operators • 6 mins
    • Overloading ++ and -- • 12 mins
    • Binary Operators • 4 mins
    • Dynamic Cast • 10 mins
    • Binary Operators (cont) • 7 mins
    • Operator Overloading with Global Functions • 14 mins
    • Overloading Cast Operators • 7 mins
    • Explicit and Implicit Operators • 6 mins
  • 5: Standard Library Basics
    • The Standard Library • 7 mins
    • Containers • 10 mins
    • Vector • 4 mins
    • Type Inference (auto) • 19 mins
    • Range-Based for • 18 mins
    • Array • 5 mins
    • Deque and List • 7 mins
    • Associative Containers • 44 mins
    • New Associative Containers • 16 mins
    • Container Adapters • 6 mins
    • Iterators • 19 mins
    • Algorithms • 26 mins
    • Review and Clarifications • 11 mins
    • erase and Iterators • 4 mins
    • Algorithms and Function Pointers • 11 mins
    • Functors • 8 mins
    • Strings • 8 mins
    • String Views• 11 mins
    • Emplacement vs. Insertion • 15 mins
  • 6: I/O and Streams
    • Streams • 17 mins
    • Stream Manipulators • 4 mins
    • File IO • 2 mins
    • format (C++ 20) • 4 mins
    • Using format • 12 mins
      • Formatting Custom Types • 9 mins
  • 7: Modern Language Features
    • Lambda Functions • 40 mins
    • Lambda Rules • 7 mins
    • Lambda Captures • 4 mins
    • Storing Lambdas • 12 mins
    • Lambda Functions and auto • 3 mins
    • Uniform Initialization • 8 mins
    • Initializer Lists • 8 mins
    • Compile Time Assertions • 6 mins
      • Structural Decomposition • 3 mins
  • Attributes • 8 mins
    • decltype • 14 mins
    • noexcept • 3 mins
    • Module 3 Labs Solution Walkthrough • 1h 04m 18s
    • Thread Local Storage • 7 mins
  • 8: Templates
    • Why Templates.mp4 • 5 mins
    • Template Functions • 6 mins
    • Template Matching • 4 mins
    • Multiple Type Parameters • 2 mins
    • More on Template Functions • 5 mins
    • Template Instantiation • 5 mins
    • Template Linkage • 4 mins
    • Template Classes • 22 mins
    • Default Template Parameters • 1 min
    • Memory Allocators • 9 mins
    • Template Specialization • 5 mins
    • Template Aliases • 10 mins
    • Creative Template Usage • 9 mins
    • Trait Classes • 26 mins
    • More Templates Features • 10 mins
    • Template Metaprogramming • 5 mins
    • Variadic Templates • 21 mins
  • 9: Resource Management
    • RAII • 9 mins
    • Examples • 49 mins
    • RAII in the Standard Library • 2 mins
    • Memory Management • 8 mins
    • unique_ptr • 18 mins
    • Smart Pointer Implementation • 9 mins
    • Custom Deleters • 5 mins
    • The Pimpl Idiom • 10 mins
    • shared_ptr • 15 mins
    • weak_ptr • 12 mins
    • Error Handling • 7 mins
    • Exceptions • 13 mins
    • Catching and Handling Exceptions • 19 mins
  • 10: The C++ Standard Library
    • Overview • 3 mins
    • Random Numbers • 6 mins
    • variant • 6 mins
    • optional • 6 mins
    • any • 5 mins
    • invoke and apply • 3 mins
    • expected • 3 mins
    • chrono • 10 mins
  • 11: Concurrency
    • Threads vs. Processes • 7 mins
    • CPUs • 13 mins
    • CPUs and Caches • 9 mins
    • Interlude - unique_ptr for Arrays • 2 mins
    • False Sharing • 17 mins
    • C++ Memory Model • 13 mins
    • Optimizations • 5 mins
    • Atomic Operations • 12 mins
    • Lazy Initialization • 5 mins
    • Threads • 13 mins
    • More Threading • 4 mins
    • Synchronization and Mutexes • 10 mins
    • Locks and Deadlocks • 8 mins
    • Protecting Rarely Updated Data • 4 mins
    • Recursive Locking • 3 mins
    • Condition Variables • 10 mins
    • More Concurrency • 13 mins
  • 12: More C++
    • Concepts • 16 mins
    • Ranges • 5 mins
    • Views • 9 mins
    • Modules • 15 mins
    • Coroutines • 42 mins
  • Lab Solutions
    • Module02
    • Module03
    • Module04
    • Module05

Taught by

Pavel Yosifovich

Reviews

Start your review of Modern C++ Programming course

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.