Course curriculum

    1. C++ Introduction

    2. Feedback and Course Reviews

    1. C++ Video Series Introduction | Modern Cpp Series

    2. C++ Workflow in a Compiled Language | Modern Cpp Series

    3. [Setup Video] Linux Setting up C++ | Modern Cpp Series

    4. [Setup Video] Setting up C++ on Mac (Shown on Apple M1) | Modern Cpp Series

    5. [Setup Video] Visual Studio Setup for C++ | Modern Cpp Series

    6. Hello World in C++ | Modern Cpp Series

    7. [Advice] Making mistakes, make small changes when learning | Modern Cpp Series

    8. [Info] A quick tour of the different versions of C++ | Modern Cpp Series

    9. [Info/Advice] C++ Websites to help you while learning | Modern Cpp Series

    1. C++ Primitive Data Types | Modern Cpp Series

    2. const in C++ - The first use | Modern Cpp Series

    3. C++ Block Scope | Modern Cpp Series

    4. Raw Arrays and std::array in C++ | Modern Cpp Series

    5. For-loop, ranged based for-loop, while, do-while, and std::fill | Modern Cpp Series

    6. continue and break | Modern cpp Series

    7. Writing Functions in C++ | Modern Cpp Series

    8. Recursive Functions in C++ | Modern Cpp Series

    9. Address of operator & | Modern Cpp Series

    10. C++ Functions - Understanding Pass by Value Semantics | Modern Cpp Series

    11. References in C++ (Another use of the & symbol) | Modern Cpp Series

    12. C++ Functions - Understand Pass by Reference (&) Semantics | Modern Cpp Series

    13. Functions in C++ with const parameters and why (bonus std::is_const) | Modern Cpp Series

    14. What is a pointer, dereferencing, and the point of pointers? | Modern Cpp Series

    15. Check Your Understanding: Dereferencing a pointer | Modern Cpp Series

    16. Dynamic Memory allocation with new and delete (and delete[]) | Modern Cpp Series

    17. Pointer Arithmetic, Array Offsets, and exposing how ‘brackets’ dereference | Modern Cpp Series

    18. Misunderstanding the use of sizeof | Modern Cpp Series

    19. Passing arrays into functions(array decay to pointer)-- instead use std::vector | Modern Cpp Series

    20. Pitfalls of Pointers (and using the address sanitizer and gdb to find them) | Modern Cpp Series

    21. Function pointers, typedef a function pointer, and std::function | Modern Cpp Series

    1. lvalue, rvalue, lvalue references and a short introduction to rvalue references | Modern Cpp Series

    2. Introduction to std::move in C++ | Modern Cpp Series

    3. std::unique_ptr - A scoped smart pointer | Modern Cpp Series

    4. std::shared_ptr - A reference counted smart pointer | Modern Cpp Series

    5. std::weak_ptr - A non-owning smart pointer | Modern Cpp Series

    6. Interface (.hpp) versus implementation (.cpp) files (and why they exist) | Modern Cpp Series

    1. C++ Classes part 1 - Introduction to C++ class | Modern Cpp Series

    2. C++ Classes part 2 - Default Constructor, default destructor, and more! | Modern Cpp Series

    3. Classes part 3 - Copy Constructor and Copy Assignment (Deep and Shallow Copy) | Modern Cpp Series

    4. Classes part 4 - The Rule of 3 (and the lesser known Law of the Big Two) | Modern Cpp Series

    5. Classes part 5 - Avoiding copies(Delete, copy constructor and pass by reference) | Modern Cpp Series

    6. Classes part 6 - Operator overloading | Modern Cpp Series

    7. Classes part 7 - Member Initializer Lists | Modern Cpp Series

    8. Classes part 8 - Structs in C++ | Modern Cpp Series

    9. Classes part 9 - Resource Acquisition is Initialization (RAII)

    10. Classes part 10 - Rule of Five - Have fun reducing memory allocations! | Modern Cpp Series

    11. Classes part 11 - friend functions (and why you should probably avoid) | Modern Cpp Series

    12. Classes part 12-Explicit constructors and list initialization to avoid conversions|Modern Cpp Series

    13. Classes part 13 - Introduction to Inheritance | Modern Cpp Series

    14. Classes part 14 - Inheritance - public, private, and protected access levels | Modern Cpp Series

    15. Classes part 15 - Inheritance calling different constructors | Modern Cpp Series

    16. Classes part 16 - Virtual Functions (Dynamic dispatch) | Modern Cpp Series

    17. Classes part 17 - Virtual Destructors (Why to make base class destructor virtual)| Modern Cpp Series

    18. Classes part 18 - Understanding the vtable (Popular interview question) | Modern Cpp Series

    19. Classes part 19 - Interfaces in C++ (Pure virtual functions) | Modern Cpp Series

    20. Classes part 20 - CAUTION Multiple Inheritance (and one example of using it) | Modern Cpp Series

    21. cppman | Modern Cpp Series

    22. Classes part 21 - ‘const correctness' with member functions | Modern Cpp Series

    23. Classes Part 22 - Curly brace versus parenthesis and std::initializer_list | Modern cpp Series

    24. Classes part 23 - Composition (and aggregation) versus Inheritance in C++ | Modern Cpp Series

    25. Classes part 24 - Multiple Inheritance Revisited (Virtual inheritance) | Modern Cpp Series

    26. Classes part 25 - Classes Practice Interview -- Jeopardy Edition | Modern Cpp Series

    1. Classes Part 26 - Value Initialization (Zero-Initialization of Member Variables) | Modern Cpp Series

    2. Classes Part 27 - In-Class Initializer | Modern Cpp Series

    3. Classes Part 28 - Delegating Constructors - Avoiding Repeating yourself

    4. Classes Part 29 - Class Data Layout (Optimizing for size) | Modern Cpp Series

    5. Classes Part 30 - pIMPL (pointer to implementation) - More Stable APIs| Modern Cpp Series

    6. Classes Part 31 - The ‘this’ keyword - Modern Cpp Series

    7. The ‘static’ keyword - understanding static vs stack vs heap memory - Modern Cpp Series

    8. Classes Part 32 - static member variables and static member functions in classes - Modern Cpp Series

About this course

  • Free
  • 201 lessons

This course is Free -- what is the catch?

This course consists of all of my free uploads on the C++ programming language to YouTube.

  1. There are ads from YouTube (if you do not have YouTube premium)
  2. The playlist will slowly get updated over time as I upload
  3. The benefit to you is you can get involved in discussions with others following the playlist
  4. You get to track your progress as you complete each video--so you know exactly where you left off!


That is all there is to it!

FAQ

  • So this is just a course with all of your free YouTube videos?

    Correct. They're listed in the order that I released them in YouTube. Generally speaking, that's the order you should follow the series, though you can pick and choose as you like.

  • Will you ever do a paid version of this course?

    Perhaps in the future if there's some demand for this subject.

  • Can you add additional exercises, code, and homework assignment?

    For now, the content is what you see in the videos. In the future if I develop a paid course I would likely include things like exercises, code, etc.