C++ Programming Course - Beginner to Advanced - thinkfaststudio.com

C++ Programming Course – Beginner to Advanced

Views: 3347805
Like: 101431
Learn modern C++ 20 programming in this comprehensive course.

💻 Source code:

✏️ Course developed by Daniel Gakwaya. Check out his YouTube channel:
🐦 Twitter:
🔗 Want more from Daniel?
🔗 Join Daniel’s discord server for support:

⭐️ Course Contents ⭐
(0:00:00) Introduction

(0:04:32) Chapter 1: Setting up the tools
Installing C++ Compilers on Windows
Installing VS Code on Windows
Configuring Visual Studio Code for C++ on Windows
Installing C++ Compilers on Linux
Installing Visual Studio Code on Linux
Configuring Visual Studio Code for C++ on Linux
Installing C++ Compilers on MacOs
Installing Visual Studio Code on MacOs
Configuring Visual Studio Code for C++ on MacOs
Online Compilers

(1:43:01) Chapter 2: Diving in
Your First C++ Program
Errors and Warnings
Statements and Functions
Data input and output
C++ Program Execution Model
C++ core language Vs Standard library Vs STL

(3:00:47) Chapter 3: Variables and data types
Variables and data types Introduction
Number Systems
Integer types : Decimals and Integers
Integer Modifiers
Fractional Numbers
Characters And Text
Variables and data types summary

(4:46:46) Chapter 4: Operations on Data
Introduction on Data operations
Basic Operations
Precedence and Associativity
Prefix/Postfix Increment & Decrement
Compound Assignment Operators
Relational Operators
Logical Operators
Output formatting
Numeric Limits
Math Functions
Weird Integral Types
Data Operations Summary

(7:01:58) Chapter 5: Flow Control
Flow Control Introduction
If Statements
Else If
Ternary Operators
Flow Control Summary

(7:53:49) Chapter 6: Loops
Loops Introduction
For Loop
While Loop
Do While Loop

(8:47:08) Chapter 7: Arrays
Introduction to Arrays
Declaring and using arrays
Size of an array
Arrays of characters
Array Bounds

(9:53:23) Chapter 8: Pointers
Introduction to Pointers
Declaring and using pointers
Pointer to char
Program Memory Map Revisited
Dynamic Memory Allocation
Dangling Pointers
When new Fails
Null Pointer Safety
Memory Leaks
Dynamically allocated arrays

(12:11:04) Chapter 9: References
Introduction to References
Declaring and using references
Comparing pointers and references
References and const

(12:44:29) Chapter 10: Character Manipulation and Strings
Introduction to Strings
Character Manipulation
C-string manipulation
C-String concatenation and copy
Introducing std::string
Declaring and using std::string

(14:12:47) Chapter 11: Functions
The One Definition Rule
First Hand on C++ Functions
Function Declaration and Function Definitions
Multiple Files – Compilation Model Revisited
Pass by value
Pass by pointer
Pass by reference

(16:03:20) Chapter 12: Getting Things out of functions
Introduction to getting things out of functions
Input and output parameters
Returning from functions by value

(16:32:35) Chapter 13: Function Overloading
Function Overloading Introduction
Overloading with different parameters

(16:49:00) Chapter 14: Lambda functions
Intro to Lambda Functions
Declaring and using lambda functions
Capture lists
Capture all in context

(17:40:08) Chapter 15: Function Templates
Intro to function templates
Trying out function templates
Template type deduction and explicit arguments
Template parameters by reference
Template specialization

(19:04:31) Chapter 16: C++20 Concepts Crash course
Intro to C++20 Concepts
Using C++20 Concepts
Building your own C++20 Concepts
Zooming in on the requires clause
Combining C++20 Concepts
C++20 Concepts and auto

(20:15:40) Chapter 17: Classes
Intro to classes
Your First Class
C++ Constructors
Defaulted constructors
Setters and Getters
Class Across Multiple Files
Arrow pointer call notation
Order of Constructor Destructor Calls
The this Pointer
Size of objects

(22:52:43) Chapter 18: Inheritance
Introduction to Inheritance
First try on Inheritance
Protected members
Base class access specifiers : Zooming in
Closing in on Private Inheritance
Resurrecting Members Back in Context
Default Constructors with Inheritance
Custom Constructors With Inheritance
Copy Constructors with Inheritance
Inheriting Base Constructors
Inheritance and Destructors
Reused Symbols in Inheritance

(26:21:03) Chapter 19: Polymorphism
Introduction to Polymorphism
Static Binding with Inheritance
Dynamic binding with virtual functions
Size of polymorphic objects and slicing
Polymorphic objects stored in collections (array)
Overloading, overriding and function hiding
Inheritance and Polymorphism at different levels
Inheritance and polymorphism with static members
Virtual functions with default arguments
Virtual Destructors
Dynamic casts
Polymorphic Functions and Destructors
Pure virtual functions and abstract classes
Abstract Classes as Interfaces


  1. learn C++ 31 minuts – Beginner to Advanced KKKKKKKKKKKKKKKKKKKK

  2. hello, I'm encountering an error while configuring the MSVC at 00:52:20 telling me 'cl : Command line warning D9024 : unrecognized source file type (directory of rooster.exe) and 'LINK : fatal error LNK1181: cannot open input file (directory of rooster.exe)', can anyone help me out to better understand what caused it and fix it

    PS: I'm using the same arguments seen in the video for the compilers in tasks.json.

  3. Really great that I paid for this on Udemy just for it to be free on YouTube. Really got my money's worth! 👍

  4. I wish somebody could tell me how to get the VSCode preprocessor to include the iostream file. All I can get it to see is stdio.h, and I can't use std::cout, endl, and who know how many other commands. I've tried msys and MinGW compilers; the latter brings up iostream in Codeblocks no problem, but VSCode won't recognize it.

  5. So much high quality educational content for free these days; what a time to be alive!

  6. First of all, thank you for the upload. This was huge and it was very through most of the time. I can see that this would be a paying course, because you can see there are courses skipped from the video, still it was through and easy to follow 98% of the time. You really lost me in the last chapter (built too heavily on the skipped parts). Thank you for the course!

  7. when you have like this one (video) the code will be very esay for us thanks freecodecamp

  8. Great Video as always, I will learn C++ so I can learn Arduino further, Thanks!

  9. Chapter 1: Setting up the tools

    00:04:32 C++ Dev Tools

    00:11:06 Installing C++ Compilers On Windows

    00:24:27 Installing VS Code On Windows

    00:28:00 Configuring Visual Studio Code For C++ On Windows

    00:57:27 Installing C++ Compilers On Linux

    01:04:02 Installing Visual Studio Code On Linux

    01:07:40 Configuring Visual Studio Code For C++ On Linux

    01:22:45 Installing C++ Compilers On MacOS

    01:28:07 Installing Visual Studio Code On MacOS

    01:30:16 Configuring Visual Studio Code For C++ On MacOS

    01:35:37 Online Compilers

    Chapter 2: Diving In

    01:43:01 Your First C++ Program

    01:55:56 Comments

    02:01:56 Errors And Warnings

    02:13:12 Statements And Functions

    02:31:34 Input Output

    02:49:57 C++ Program Execution Model & Memory Model

    02:56:42 C++ Core Language VS Standard Library VS STL

    Chapter 3: Variables And Data Types

    03:00:47 Variables And Data Types Introduction

    03:05:05 Number Systems

    03:21:52 Integers

    03:40:44 Integer Modifiers

    03:54:00 Fractional Numbers

    04:16:39 Booleans

    04:24:49 Characters And Text

    04:32:05 Auto

    04:38:06 Assignments

    04:45:42 Variables And Data Types Summary

    Chapter 4: Operations on Data

    04:46:45 Operations On Data Introduction

    04:47:31 Basic Operations

    04:58:01 Precedence and Associativity

    05:12:06 Prefix And Postfix + & –

    05:23:22 Compound Operators

    05:31:43 Relational Operators: Comparing Stuff

    05:40:51 Logical Operators

    05:56:09 Output formatting

    06:33:26 Numeric Limits

    06:41:10 Math Functions

    06:54:23 Weird Integral Types

    06:59:41 Operations On Data Summary

    Chapter 5: Flow Control

    07:01:58 Flow Control: Conditional Programming Introduction

    07:03:30 If Statement

    07:20:49 Else If

    07:28:46 Switch

    07:42:44 Ternary Operator

    07:52:20 Flow Control: Conditional Programming Summary

    Chapter 6: Loops

    07:53:49 Loops Introduction

    07:55:20 For Loop

    08:25:20 While Loop

    08:36:54 Do While Loop

    Chapter 7: Arrays

    08:47:08 Arrays Introduction

    08:48:45 Declaring And Using Arrays

    09:15:53 Size Of An Array

    09:26:44 Arrays Of Characters

    09:46:46 Bounds Of An Array

    Chapter 8: Pointers

    09:53:23 Pointers Introduction

    09:56:03 Declaring And Using Pointers

    10:14:48 Pointer To Char

    10:27:26 Program Memory Map

    10:36:30 Dynamic Memory Allocation

    11:05:45 Dangling Pointers

    11:24:15 When New Fails

    11:38:00 Null Pointer Safety

    11:45:18 Memory Leaks

    11:55:44 Dynamic Arrays

    Chapter 9: References

    12:11:04 References Introduction

    12:11:58 Declaring And Using References

    12:22:28 Comparing References To Pointers

    12:37:25 References And Const

    Chapter 10: Character Manipulation And Strings

    12:44:29 Character Manipulation And Strings Introduction

    12:46:24 Character Manipulation

    13:09:28 C-String Manipulation

    13:41:42 C-String Concatenation And Copying

    14:01:19 Introducing std::string

    14:03:38 Declaring And Using std::string

    Chapter 11: Functions

    14:12:47 One Definition Rule

    14:28:25 First Hand On Functions

    15:00:50 Function Declaration & Definition

    15:15:30 Functions Across Multiple Files – Compilation Model Revisited

    15:42:30 Pass By Value

    15:50:30 Pass By Pointer

    15:57:46 Pass By Reference

    Chapter 12: Getting Things Out Of Functions

    16:03:20 Getting Things Out Of Functions Introduction

    16:03:58 Input And Output Parameters

    16:17:54 Returning From Functions

    Chapter 13: Function Overloading

    16:32:35 Function Overloading Introduction

    16:34:17 Overloading With Different Parameters

    Chapter 14: Lambda Functions

    16:49:00 Lambda Functions Introduction

    16:49:38 Declaring And Using Lambda Functions

    17:20:25 Capture Lists

    17:34:24 Capture All In Context

    Chapter 15: Function Templates

    17:40:08 Function Templates Introduction

    17:41:45 Trying Out Function Templates

    18:19:52 Template Type Deduction And Explicit Arguments

    18:35:47 Template Type Parameters By Reference

    18:48:55 Template Specialization

    Chapter 16: Concepts

    19:04:31 Concepts Introduction

    19:06:47 Concepts

    19:25:32 Concepts: Building Your Own

    19:42:45 Requires Clause: Zooming In

    19:59:53 Logical Combinations Of Concepts

    20:09:39 Concepts And Auto

    Chapter 17: Classes

    20:15:40 Classes Introduction

    20:16:33 Your First C++ Class

    20:38:03 Constructors

    20:53:35 Defaulted Constructors

    20:59:42 Setters And Getters

    21:10:06 Class Across Multiple Files

    21:30:49 Managing Class Objects Through Pointers

    21:42:48 Destructors

    22:05:44 Constructor & Destructor Call Order

    22:11:03 The This Pointer

    22:33:33 Struct

    22:42:37 Size Of Class Objects

    Chapter 18: Inheritance

    22:52:43 Inheritance Introduction

    22:55:59 Your First Try On Inheritance

    23:21:10 Protected Members

    23:32:06 Base Class Access Specifiers: Zooming In

    23:36:49 Base Class Access Specifiers: A Demo

    24:07:42 Closing In On Private Inheritance

    24:26:36 Resurrecting Members Back In Scope

    24:46:59 Default Arg Constructors With Inheritance

    24:57:37 Custom Constructors With Inheritance

    25:26:56 Copy Constructors With Inheritance

    25:51:53 Inheriting Base Constructors

    26:06:00 Inheritance With Destructors

    26:12:20 Reused Symbols In Inheritance

    Chapter 19: Polymorphism

    26:21:03 Polymorphism Introduction

    26:26:54 Static Binding With Inheritance

    26:55:24 Polymorphism (Dynamic Binding) With Virtual Functions

    27:14:31 Size Of Polymorphic Objects And Slicing

    27:26:37 Polymorphic Objects Stored In Collections

    27:45:42 Override

    27:52:45 Overloading, Overriding And Hiding

    28:07:35 Inheritance And Polymorphism At Different Levels

    28:33:03 Inheritance And Polymorphism With Static Members

    28:49:13 Final

    29:07:42 Virtual Functions With Default Arguments

    29:23:18 Virtual Destructors

    29:35:38 Dynamic_cast<>()

    30:08:17 Don't Call Virtual (Polymorphic) Functions From Constructors & Destructors

    30:24:45 Pure Virtual Functions And Abstract Classes

    30:43:37 Abstract Classes As Interfaces

  10. My name for the .exe file is "WowThisIsATestName" Just found it funny.

  11. Super cool .. the only problem is the pronounce, it’s such a fatigue to follow

  12. This reminds me what I used to do with pointer functions, pass functions to functions as parameters in standard C about 30 years ago.

  13. i´m having trouble to understand how each int, for, while, if reeeeally works.
    i know we can use

    int c;
    while ((c = getchar()) != EOF)


    but danm…..when i will really use it? i´m trying to learn here, i´m typping these codes, sometimes i understand a little bit, but sometimes when i progress, it´s like the same thing as before.
    i´m stuck but i know eventually i will understand, but this is kinda weird to me.

  14. if you are in school, this is basically cs1 to cs2. aka from hello world to object oriented programming (not including environment building)

  15. fact that you did not elaborate on how to instal compiler on Mac. While you did detailed instructions on windows. . your course is worthelss to me. I gave you tumb down.. If I cant insatll necessary tools, I am not leaning… Your approach is useless. Your lack of instructions , and confusing way on explaing how to install compiler on Mac, and what each programm means. Shows how careless instructor you are. You have no idea what you are doing, teaching wise… if you can not explain what student should do.. You are horrible instructor. I know its free course. You owe nothing to anyone… That is why one can nt learn from you.
    i will not recomend your course and will search for some else, who is better pedagogue that you are….
    people can not learn without tools, if you can not afford Mac device why in a world are you teaching the course?

  16. What were y’all thinking when you uploaded a 31hour programming language???

  17. This tutorial is about 90% useless fluff and padded with extremely excessive talking with very little information, just like the rest of the internet. The longer I watch the stupider I get.

  18. 4:45:30 – not so important but 'garbage value' is an underflow. Not sure if this is covered in this series – but it's interesting.

  19. I had hour<31 instead of hour<=31 and had to start over.

  20. 01:43:05.000 Your First C++ Program

    01:55:56.000 Comments

    02:01:56.000 Errors and Warnings

    02:13:13.000 Statements and Functions

    02:31:38.000 Data input and output

    02:49:57.000 C++ Program Execution Model

    02:56:43.000 C++ core language Vs Standard library Vs STL

    03:00:47.000 Introduction

    03:05:07.000 Number Systems

    03:21:53.000 Integers

    03:40:45.000 Integer Modifiers

    03:45:00.000 Fractional Numbers

    04:16:40.000 Booleans

    04:24:49.000 Characters and text

    04:32:06.000 Auto

    04:38:06.000 Assignments

    04:45:42.000 Variables and data types

    04:46:46.000 Introduction on Data operations

    04:47:32.000 Basic operations

    04:58:01.000 Precedence and Associativity

    05:12:07.000 Prefix and postfix + and

    05:23:22.000 Compound Operators

    05:31:43.000 Relational Operators : comparing stuff

    05:40:52.000 Logical Operators

    05:56:09.000 Output Formatting

    06:33:27.000 Numeric Limits

    06:41:10.000 Math Functions

    06:54:24.000 Weird Integral types

    06:59:41.000 Summary of Operations on data

    07:02:00.000 Flow Control Introduction

    07:03:31.000 If Statement

    07:20:50.000 Else if

    07:28:47.000 Switch

    07:42:45.000 Ternary Operator

    07:52:20.000 Summary of Flow control

    07:53:49.000 Loops Introduction

    07:55:20.000 for loop

    08:25:20.000 While loop

    08:36:54.000 Do while loops

    08:47:08.000 Introduction to Arrays

    08:48:46.000 Declaring and using Arrays

    09:15:53.000 Size of An Array

    09:26:44.000 Arrays of characters

    09:46:47.000 Bounds of an Array

    09:53:23.000 Introduction to Pointers

    09:56:04.000 Declaring and Using Pointers

    10:14:49.000 Pointer to Char

    10:27:26.000 Program Memory Map

    10:36:32.000 Dynamic Memory Allocation

    11:05:45.000 Dangling Pointers

    11:24:15.000 When 'New' Fails

    11:38:00.000 Null Pointer Safety

    11:45:18.000 Memory Leaks

    11:55:46.000 Dynamic Arrays

    12:11:04.000 Introduction to References

    12:11:58.000 Declaring and using references

    12:22:28.000 Comparing pointers and references

    12:37:29.000 References and con

    12:44:29.000 Character Manipulation and strings

    13:09:32.000 Cstring manipulation

    13:41:45.000 CString concatenation and copy

    14:01:19.000 Introducing std::string

    14:03:39.000 Declaring and using std::string

    14:12:43.000 The One Definition Rule

    14:28:25.000 First Hand on C++ Functions

    15:00:50.000 Function Declaration and Function Definitions

    15:15:31.000 Multiple Files Compilation Model Revisited

    15:42:31.000 Pass by value

    15:50:31.000 Pass by pointer

    15:57:49.000 Pass by reference

    16:03:20.000 Introduction to getting things out of functions

    16:04:03.000 Input and output parameters

    16:18:00.000 Returning from functions by value

    16:32:35.000 Function Overloading Introduction

    16:34:24.000 Overloading with different pa

    16:49:00.000 Intro to Lambda Functions

    16:49:38.000 Declaring and using lambda functions

    17:20:27.000 Capture lists

    17:33:00.000 Capture all in context

    17:40:08.000 Intro to function templates

    17:41:07.000 Trying out function templates

    18:19:53.000 Template type deduction and explicit arguments

    18:35:50.000 Template parameters by reference

    18:46:56.000 Template specialization

    19:04:31.000 Intro to C++20 Concepts

    19:06:47.000 Using C++20 Concepts

    19:25:35.000 Building your own C++20 Concepts

    19:42:46.000 Zooming in on the requires clause

    19:59:55.000 Combining C++20 Concepts

    20:09:42.000 C++20 Concepts and auto

    20:15:40.000 Intro to classes

    20:16:33.000 Your First Class

    20:38:04.000 C++ Constructors

    20:53:37.000 Defaulted constructors

    20:59:44.000 Setters and Getters

    21:10:07.000 Class Across Multiple Files

    21:30:51.000 Arrow pointer call notation

    21:42:50.000 Destructors

    22:05:46.000 Order of Constructor Destructor Calls

    22:11:06.000 The this Pointer

    22:33:33.000 struct

    22:42:37.000 Size of objects

    22:52:43.000 Introduction to Inheritance

    22:56:00.000 First try on Inheritance

    23:21:12.000 Protected members

    23:36:57.033 Base class access specifiers : Zooming in

    24:07:42.666 Closing in on Private Inheritance

    24:26:38.094 Resurrecting Members Back in Context

    24:47:05.000 Default Constructors with Inheritance

    24:57:37.766 Custom Constructors With Inheritance

    25:26:56.400 Copy Constructors with Inheritance

    25:51:54.000 Inheriting Base Constructors

    26:12:20.533 Reused Symbols in Inheritance

    26:21:07.666 Chapter 19: Polymorphism

    26:55:24.100 Dynamic binding with virtual functions

    27:14:41.666 Size of polymorphic objects and slicing

    27:26:47.866 Polymorphic objects stored in collections

    27:45:51.900 Override

    27:52:45.933 Overloading, overriding and function hiding

    28:07:39.800 Inheritance and Polymorphism at different levels

    28:33:07.666 Inheritance and polymorphism with static members

    28:49:13.833 Final

    29:07:42.466 Virtual functions with default arguments

    29:23:21.066 Virtual Destructors

    29:35:42.399 Dynamic casts

    30:08:23.066 Polymorphic Functions and Destructors

    30:24:46.754 Pure virtual functions and abstract classes

    30:43:37.633 Abstract Classes as Interfaces

  21. OMG, what a shitty course — the dude literally spent the first hour doing nothing of any use

  22. Hi i need help with configuring the cl.exe complier (MSVC). Despite working it out in Developer PowerShell for VS 2022, i still face this error message:

    cl.exe : The term 'cl.exe' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of

    the name, or if a path was included, verify that the path is correct and try again.

    At line:1 char:1

    + cl.exe

    + ~~~~~~

    + CategoryInfo : ObjectNotFound: (cl.exe:String) [], CommandNotFoundException

    + FullyQualifiedErrorId : CommandNotFoundException

    Any guidance will be much appreciated.

  23. this course is of poor quality, don't waste.. 31 hours

  24. Great content and great vedio sharing the detailed things which are required for the beginner to learn.Thanks.

  25. Bro what an absurd video.
    Imagine editing and rendering a day long video

  26. This guy literally talks about absolutely nothing for about 99.9% of this "course". Endless dumb taking, no information. Total waste of time, unless you are an absolute retard.

  27. As you can see at 6:31:27 we set g variable to 45, but when we print it out it printed as 55. Why is that?

  28. Please, I need translation very urgently, my friends. If there is someone among you who can help me, please help me😢

  29. Why do you keep using "std::cout" again and again, we could've just used "using namespace std;" under our #include<iostream>, and we can just simply type cout? maybe you explain this later in the video but the video is 30 hrs long,

  30. Well… all new to this, im at the compiler part in the enviromental veriables/path and accedentally copied in the path for mingw64 and errased the original path… any help to restore it? tried: C:Windowssystem32; and got it to find mingw64… but not sure what else ive fucked up

  31. ok so… i did what he says to verify the compilers if they are working in vs code and they do not show up when i compile the task. i've done the verification in cmd just like he did and there it showed up, but in vs code it doesn't. what do i do?

  32. I have this video and then i can learn English.

  33. 19:42 on windows 11 you have to restart for it to take effect good luck to you all

  34. Thanks so much for hosting our course . I've learnt so much from the channel myself! Knowing that even a single individual benefits from the course gives me great pleasure.

    If anyone has specific questions or just wants to hang out talking about tech or C++, consider joining the discord server shared in the description. Can't wait to see what you guys build with C++.

Leave a Reply

Your email address will not be published.