Mô tả

Welcome to the C++ 20 Masterclass! A course designed to teach you cutting edge modern C++ from the absolute beginning all the way to very advanced topics, the topics you need in areas where C++ is used massively in modern times. Want to be a confident game developer? High performance applications in the financial sector, how about powerful software modules on top of which server systems, network infrastructure, database systems, even operating systems themselves run on top of? Well C++ is the dominant language used in these areas and many more! C++ is the programming language even other programming languages and technologies like NodeJS, PHP, Java, JavaScript and many more are written in.

By learning modern C++, you will be setting yourself up for success in writing software that runs devices ranging from bare metal embedded devices,  to mainstream electronic tech products like fridges, toasters, to networking infrastructure like routers and switches, all the way to power plants, manufacturing facilities and medical equipment. C++ is simply everywhere!

This course was carefully designed in a way  that it  will make you ready to take on technologies  and industries where C++ is widely used, by teaching you Modern C++ the way it is used in industry, and you will learn and master how to use shiny new features from the latest C++ standard (C++20) like ranges, modules coroutines, concepts, the three way comparison infrastructure and many more features spread out through out chapters and lectures in the course.

This course will teach you modern C++ from the absolute beginning all the way to a point where you can use advanced features like function templates, class templates, polymorphism, move semantics, functors , callbacks, STL container, iterators and algorithms, I will even show you how to build iterators for your own collection types, giving you the tools to  plug into the infrastructure provided by the C++ standard library to tune it to your own needs. Here are some of the things you'll get to master through this course : 

  • C++20

  • C++17

  • C++14

  • C++11

  • C++98

  • Ranges

  • Modules

  • Concepts

  • Coroutines

  • Classes

  • Variables and data types

  • Functions

  • Inheritance

  • Polymorphism

  • Const correctness

  • Static variables

  • Storage duration

  • Linkage

  • One Definition rule

  • Operator Overloading

  • Three way comparison infrastructure

  • Function like entities

  • Move semantics

  • STL containers, iterators and algorithms

  • And much more!

By the time you're done with the course, you will be ready to use modern C++ with standards C++ 11,C++14, C++17 and C++ 20,  but you will also have the tools necessary to read, understand and work with older C++ code bases with C++98 and below out there, making your  C++ skills valuable across a wide range of areas regardless of the C++ standard in use.

The course was designed with complete beginners in mind. So if you have never programmed a computer before, don't worry, I will be with you every step of the way, showing you around, teaching you the tools, constructs and mechanisms necessary to build real C++ projects.

Existing C++ developers or experienced developers from other programming languages will also get a lot of value from the course as we cover advanced topics not covered in other online courses and books as far as I can tell. These include things like building  your own iterators, callback functions and many more.

Now C++ is a very powerful language used by big companies like Microsoft, Apple, Google, NASA, and many more across a wide range  of products and I can talk about it all day. I am privileged to have been using it in my daily work for the last decade and I am  excited to share my accumulated knowledge with you in this course.

If you are serious about learning and mastering cutting edge modern C++, then this course is designed with the skill, the patience and the depth needed to get there as efficiently as possible. Please check some of the preview lectures, and lets get you started with modern C++ development, using C++ 20 as our base standard.

Bạn sẽ học được gì

C++ 20

Ranges

Concepts

Modules

Coroutines

C++ 17

C++ 14

C++ 11

C++98

Operator Overlading

classes

variables and data types

Inheritance

Polymorphism

Const correctness

static variables

Class Templates

Exceptions

Move semantics

Stl containers, iterators and algorithms

Function like entities and callbacks

Lambda expressions

Character manipulation and strings

Return value optimization

And much more!

Yêu cầu

  • Strong drive and willingness to learn
  • Access to a PC or Mac with an internet connection
  • I'll teach you the rest

Nội dung khoá học

53 sections

Welcome

3 lectures
Welcome
09:28
Getting the most out of the course
06:47
Source code, Slides and Questions [IMPORTANT]
01:12

Environment Setup - [Windows - Linux - Mac]

1 lectures
The Tools
01:31

Environment setup - Windows

9 lectures
Windows setup introduction
02:29
Install and setup VS Code on Windows
05:04
Microsoft Visual Studio Install - Windows
04:56
VS Code setup with MSVC
12:53
Install GCC & Clang - Windows
07:18
Configure VS Code for GCC - Windows
07:43
Configure VS Code for Clang - Windows
07:20
Windows template project - All compilers
10:24
Windows Development Environment setup - Summary
01:21

Environment setup - Linux

7 lectures
Linux environment setup - Introduction
02:37
Install & setup VS Code on Linux
03:16
Install GCC on Linux
07:12
Configure VS Code for GCC - Linux
09:51
Install Clang on Linux
03:15
Configure VS Code for Clang - Linux
08:19
Template Project - All compilers - Linux
07:40

Environment setup - Mac

6 lectures
Introduction
01:56
Install and Setup Visual Studio Code
03:37
Install GCC and Clang
01:08
Configure VS Code for gcc
09:51
Configure VS Code for Clang
08:19
Template Project - All compilers
07:40

Environmet setup - Other options

3 lectures
Online Compilers
07:39
About other IDEs
01:16
So you think you know more about C++, let's find out!
3 questions

Diving In

12 lectures
Project Template
07:57
Your First C++ Program
12:55
Comments
05:59
Errors
11:16
Statements and Functions
18:22
Data input and output
18:22
Data Output
1 question
C++ Program Execution Model
06:45
C++ core language Vs Standard library Vs STL
04:18
Program Structure
3 questions
The program wants to know where you live
1 question
Summary
04:06

Variables and Data Types

15 lectures
Introduction
04:18
Number Systems
16:47
Decimals and Integers
18:52
Integer Modifiers
13:15
Fractional Numbers
22:39
Declare and initialize variables
1 question
Booleans
08:09
Characters And Text
07:16
Auto
06:00
Assignments
07:35
Data Representation in memory
1 question
Number systems
1 question
Auto
1 question
Let's see how you'd use your data types
3 questions
Summary
01:23

Operations on Data

16 lectures
Introduction
00:45
Basic Operations
10:29
Precedence and Associativity
14:05
Prefix/Postfix Increment & Decrement
11:15
Compound Assignment Operators
08:20
RelationalOperators
09:08
Logical Operators
15:17
Output formatting
37:17
Numeric Limits
07:43
Math Functions
13:13
Area of a hexagon
1 question
Weird Integral Types
05:17
Celcius to Fahrenheit
1 question
Area and Volume of a Box
1 question
So you think you know more about C++. Let's find out
3 questions
Summary
02:33

Literals and Constants

7 lectures
Introduction
01:23
Literals
20:12
Constants
11:23
Constant Expressions
14:50
constinit
10:33
So you think you know more about C++? Let's find out!
3 questions
Summary
02:16

Data Conversions : Overflow & Underflow

6 lectures
Introduction
02:23
Implicit Data Conversions
09:51
Explicit Data Conversions
11:23
Overflow and Underflow
11:05
So you think you know a bit more about C++? Let's find out!
4 questions
Summary
01:01

Bitwise Operators

10 lectures
Introduction
02:09
Printing Integers in Binary
06:37
Shift Operators
17:30
Logical Bitwise Operators
12:53
Compound Bitwise and Assignment Operators
08:35
Masks
23:38
Mask Example
05:12
Packing Color Information
05:16
So you think you know moare about C++? Let's find out!
8 questions
Summary
01:11

Variable Lifetime and Scope

3 lectures
Variable Lifetime
03:32
Variable Scope
08:47
So you think you know a little more about C++? Let's find out!
3 questions

Control Flow

19 lectures
Introduction
01:31
If Statements
17:19
Else If
07:56
Switch
14:08
Leap Years
1 question
Short Circuit Evaluations
13:54
Integral Logic Conditions
09:13
Ternary Operators
09:42
If constexpr
04:49
If with Initializer
07:14
Switch with Initializer
05:52
Variable Scope Revisited
06:52
Switch Scope
21:02
Is it even ? Or could it be odd?
1 question
Will you get the treatment ?
1 question
Is the day valid?
1 question
Hunt for a day in the past
1 question
Are you completely surrounded?
1 question
Summary
01:29

Loops

23 lectures
Introduction
01:31
For Loop
30:15
So you think you have a better idea about loops in C++? Let's find out!
2 questions
Can you sum up to 99?
1 question
For Loop : Multiple Declarations
06:06
Print upper case characters
1 question
Comma Operator
05:32
Range Based For Loop
11:07
Filter in multiples of 3
1 question
While Loop
11:51
Huge Loops with Output
07:42
Do while loop
10:26
Multiples of 19
1 question
Infinite loops
10:35
Infinite Loops Practice
11:58
Decrementing Loops
19:18
Throwing you off :-)
1 question
Nested Loops
14:55
Break and Continue
18:20
Fix the Calculator
08:46
For Loop with Init condition
05:45
Year Calendar
1 question
Summary
03:01

Arrays

17 lectures
Introduction
01:37
Declaring and using arrays
27:08
Eliminating duplicates
1 question
Size of an array
10:50
The collection is sorted
1 question
Arrays of characters
20:02
Hunt for vowels
1 question
Array Bounds
06:57
Array bounds. Why care?
3 questions
Generating Random Numbers
20:01
Fun with character arrays : Fortune Teller V1
15:38
What do we have in common?
1 question
Multi dimensional arrays
35:15
Multi dimensional arrays of characters
14:42
Fun with multi dimensional arrays of characters : Fortune Teller V2
08:44
The Calculator
1 question
Summary
03:27

Pointers

27 lectures
Introduction
02:40
Declaring and using pointers
18:45
Pointer to char
12:48
So you think you know more about pointers now? Let's find out!
2 questions
Arrays of pointer to char
06:34
const pointer and pointer to const
28:24
Array of const pointer to const char
07:12
Pointers and arrays
11:48
Where does the big guy live?
1 question
Swapping array data : A demo
16:20
Pointer arithmetic : Introduction
01:33
Pointer Arithmetic : Navigation
20:22
Shoot forward
1 question
Pointer arithmetic : Distance between elements
08:49
Finding Nemo : The little guy!
1 question
Pointer Arithmetic : Comparing Pointers
03:02
Swapping array data : Pointer arithmetic
04:22
Program Memory Map Revisited
09:04
Dynamic Memory Allocation
29:14
Dangling Pointers
18:30
So you think you know a bit more about dangling pointers? Let's find out!
3 questions
When new fails
13:45
Null pointer safety
07:17
Memory Leaks
10:26
Dynamically allocated arrays
15:33
Merge them!
1 question
Summary
06:00

References

9 lectures
Introduction
00:53
Declaring and using references
10:29
Declare your own reference
1 question
Comparing pointers and references
14:57
What's your pick : pointers ? References ?
4 questions
References and const
07:18
Going through references to do stuff
3 questions
References with Range based for loops
06:13
Summary
01:04

Character manipulation and strings

28 lectures
Introduction
01:55
Character Manipulation
23:04
How many of them are there?
1 question
Hunt them down and replace them!
1 question
C-string manipulation
32:13
C-String concatenation and copy
19:36
Making sense of the gibrish
1 question
Introducing std::string
02:19
Declaring and using std::string
09:25
Concatenating std::string
30:12
Build from raw pieces!
1 question
Accessing Characters in std::string
19:24
std::string size and capacity
17:22
Modifying std::string
18:49
Comparing std::string's
12:26
Who's the greatest?
1 question
Comparing with std::string::compare()
09:30
std::string : Replacing, copying, resizing and swapping
20:04
Searching std::string
16:20
Finding matches
1 question
Transforming std::string to/from numbers
14:06
Escape sequences
18:33
Raw string literals
13:48
Escaping stuff
6 questions
Copied Strings
09:30
Strings gone crazy!
2 questions
std::string_view
30:58
Summary
03:26

Functions

36 lectures
Introduction
01:15
First hand on C++ Functions
32:25
Sum up the digits
1 question
Function declaration and definitions
14:40
Showing the odds!
1 question
Multiple Files : Revisition the Linker stage
27:00
Palindromes!
1 question
Pass by value
08:13
Pass by const value
03:24
Pass by pointer
07:34
Pass by pointer to const
04:25
Pass by const pointer to const
04:40
Zooming in on function parameters
6 questions
Pass by reference
05:56
Pass by const reference
03:48
Pointers, references and const : Throwing you off!
4 questions
Passing function parameters :Summary
06:08
Who has character?
1 question
Array function parameters
17:38
Insertion sort - Challenging
1 question
Sized array function parameters
05:37
Passing sized arrays by reference
07:06
Array function parameters : Throwing you off!
5 questions
Multi dimensional array function parameter
10:13
Default function arguments
12:14
Implicit Conversions
07:10
Implicit conversions with references
10:51
Implicit conversions with pointers
06:20
Implicit conversions with function parameters : Throwing you off!
9 questions
string_view Parameters
12:02
Implicit conversions from std::string_view to std::string
05:52
constexpr functions
08:53
consteval functions
04:05
consteval functions : Throwing you off!
3 questions
Maximum sub-sequence sum problem - Challenging.
1 question
Summary
02:22

Enums and Type aliases

9 lectures
Introduction
00:53
Enumerated types (Enum Class)
24:31
Day of the week
1 question
Enum classes : Throwing you off
5 questions
using enum
09:40
Legacy enumerated types
12:34
Enums : Throwing you off!
1 question
Type aliases
06:58
Summary
01:10

Arguments to main

5 lectures
Introduction
00:43
Grab and use the arguments
10:32
Calculator V1
06:06
Calculator V2
18:19
Summary
01:10

Getting things out of functions

19 lectures
Introduction
00:38
Input and output parameters
13:55
Even sums
1 question
Returning from functions (by value)
14:58
Returning by reference
22:00
Returning by pointer
14:48
Returning stuff : Throwing you off!
8 questions
Returning array element pointer
09:04
We messed up!
1 question
Bare auto type deduction
20:12
Function return type deduction
11:00
Return type deduction with references
09:41
Function definitions with return type deduction
07:03
Type deductions : Throwing you off!
8 questions
Optional output from functions
16:15
Introducing std::optional
19:30
Optional output with std::optional
14:40
Optional data : Throwing you off!
1 question
Summary
02:29

Function Overloading

11 lectures
Introduction
01:41
Overloading with different parameters
14:58
Overloading with pointer parameters
11:19
Overloading with reference parameters
15:00
double, std::string and const char* overloads : Let's go!
1 question
Overloading with const parameters by value
06:02
Overloading with const pointer and pointer to const parameters
11:09
Overloading with const references
08:03
Overloading with default parameters
04:53
Crazy overloads : Throwing you off!
5 questions
Summary
04:19

Lambda Functions

6 lectures
Introduction
00:37
Declaring and using lambda functions
30:46
Capture lists
13:59
Capture all in context
05:53
Lambdas : Throwing you off!
8 questions
Summary
02:25

Functions : The misfits

9 lectures
Introduction
00:57
Static variables
15:53
Self Tracking Function
1 question
Odd series
1 question
Inline functions
11:54
Inlined functions : Throwing you off
1 question
Recursive Functions
08:20
Factorial
1 question
Summary
01:51

Function call stack and debugging

8 lectures
Introduction
01:26
The call stack
13:33
Debugging C++ applications
04:56
Debugging in VS Code
31:56
Debugging in CodeLite
07:11
Debugging in Microsoft Visual Studio
06:17
Debugging arrays, loops and pointers
07:28
Summary
01:32

Function Templates

29 lectures
Introduction
01:37
Trying out function templates
38:06
Hunt them down!
1 question
Template type deduction and explicit arguments
15:55
Template type deductions : Throwing you off!
6 questions
Template parameters by reference
13:07
Swap'em'up!
1 question
Template specialization
15:50
Find'em const char* 's
1 question
Where do specializations go : Throwing you off!
1 question
Function templates with overloading
13:28
const char* function template overloads
1 question
Function template specializations Vs Overloads : Some additional reading.
00:25
Function templates with multiple parameters
24:13
Put'em numbers together!
1 question
Template return type deduction with auto
12:50
Function templates in multiple files : Throwing you off!
2 questions
Decltype and trailing return types
19:12
decltype and trailing return types : Throwing you off!
6 questions
Declytpe auto
06:15
Default arguments
13:56
Non type template parameters
15:24
Find'em values!
1 question
Auto Function Templates
08:38
auto Function Templates : Throwing you off!
4 questions
Named Template Parameters for Lambdas
12:23
Type traits
16:33
constexpr if
10:04
Summary
03:36

C++ 20 Concepts

12 lectures
Introduction
02:15
Using Concepts
18:44
Adding stuff up : Throwing you off!
5 questions
Building your own concepts
17:12
Put'em std::strings together!
1 question
Making up concepts : Throwing you off!
2 questions
Zooming in on the requires clause
17:08
Combining concepts : Conjunction(&&) and Disjunction(||)
09:46
Concepts : Throwing you off!
2 questions
Put'em different types together!
1 question
Concepts and auto
06:14
Summary
02:25

Classes

25 lectures
Introduction
00:52
Your First Class
20:31
You're a box maker!
1 question
Building for the 2D space!
1 question
C++ Constructors
15:32
Box Constructors
1 question
Construct'em Points!
1 question
Defaulted constructors
06:06
Constructors : Throwing you off!
3 questions
Setters and Getters
10:24
Point printing like a gentleman!
1 question
Class Across Multiple Files
21:11
Split your boxes in parts.
1 question
Creating classes through IDEs
06:34
Arrow pointer call notation
11:59
Pointers to objects : Throwing you off!
7 questions
Destructors
22:55
Order of Constructor Destructor Calls
05:18
The this Pointer
22:29
Setter Chains for Points with pointers
1 question
Setter Chains for Points with references
1 question
struct
09:04
struct Vs class : Throwing you off!
1 question
Size of objects
10:15
Summary
04:03

Classes, objects and const

15 lectures
Introduction
01:31
const objects
26:48
Const objects : Throwing you off!
7 questions
Const objects as function arguments
18:28
Tricky arguments : Throwing you off
4 questions
const member functions
13:36
Fixing up your Point
1 question
Getters that work as setters
15:03
Kill two birds with one stone
1 question
Dangling pointers and references in objects
15:21
Tricky return values : Throwing you off!
1 question
Zooming in on const
03:45
Mutable Member variables
08:39
Structured Bindings
13:05
Summary
03:50

Diving deep into constructors and initialization

27 lectures
Introduction
00:39
Default parameters for constructors
14:15
Default Points
1 question
Several paths leading to Rome!
2 questions
Initializer lists for constructors
09:52
Build Boxes like a gentleman!
1 question
Initializer lists Vs Member wise copy initialization
09:58
Explicit constructors
17:23
Constructor delegation
23:19
Delegated constructor for Box
1 question
Tricky constructor delegation chains
1 question
Copy constructors
39:06
Copy Constructors : Throwing you off!
3 questions
You're a Point fixer!
1 question
Objects stored in arrays are copies
12:40
You're a shape observer!
2 questions
Shallow Vs Deep copy
03:59
Move constructors
21:59
The need for move constructors
1 question
Deleted constructors
07:44
Delete your constructor ?
1 question
Initializer list constructors
27:40
Reverser
1 question
Aggregate Initialization
06:18
Designated Initializers (C++20)
09:27
Uniform initializatoin for aggregates
11:03
Summary
08:15

Friends

6 lectures
Introduction
00:37
Friend functions
14:23
Measuring distances
1 question
Friend classes
10:04
You're a ShapeFactory maker!
1 question
Summary
02:00

Static members

17 lectures
Introduction (theory)
03:15
Static Members
03:11
Static member variables
33:53
Static Members : Throwing you off!
7 questions
Count'em Points
1 question
Inline static member variables (C++17)
03:42
Static constants
07:15
Static constants pre C++17
18:30
Count Points like a gentleman
1 question
Cool Utility
1 question
Member variables of self type
21:10
Member variables of other types
09:03
Static member functions
14:28
Static member functions : Throwing you off!
4 questions
Nested classes
13:37
In class member initialization revisited
14:40
Summary
06:37

Namespaces

15 lectures
Introduction
01:32
Creating Namespaces
13:46
Use Points like a gentleman
1 question
Namespaces Across Multiple Files
11:39
Split your points across
1 question
Default Global Namespace
06:36
Make it global
1 question
Built In Namespaces
04:42
Using Declarations
15:44
Using declarations : Throwing you off!
6 questions
Anounymous Namespaces
10:04
Anonymous namespaces : Throwing you off!
3 questions
Nested Namespaces
06:30
Namespace Aliases
05:27
Summary
04:04

Programs with multiple files : A closer look

14 lectures
Introduction
00:56
Compiling and linking : Compilation Model
16:07
Compiling and Linking : Throwing you off!
5 questions
Declarations and definitions
26:13
Declaration or Definition : Throwing you off!
7 questions
One Definition Rule
15:37
Linkage
23:40
Global external variables
03:26
Linnkage : Throwing you off!
3 questions
Flipping linkage
11:31
Inline variables and functions
15:06
Inline Vs static (anonymous namespaces)
10:50
Forward declarations
11:23
Summary
03:46

Smart Pointers

18 lectures
Introduction
02:45
Unique pointers
36:02
Smarth Pointers : Throwing you off!
3 questions
Release memory like a gentleman!
1 question
You can do better!
1 question
Unique pointers as function parameters and return values
26:35
Tricky parameters : Throwing you off!
1 question
Unique pointers and arrays
12:31
Shared pointers
37:35
Shared pointers : You can do better!
1 question
Creating shared pointers from unique pointers
17:45
Shared pointers with arrays
09:22
Shared pointers as function parameters and return values
18:59
Smart Pointers : Throwing you off!
3 questions
Weak pointers
20:33
Smart pointer members : Recommended reading
00:02
Smart Pointers conventional wisdom
1 question
Summary
06:04

Operator Overloading

34 lectures
Introduction
02:56
Addition Operator as Member
21:19
operator+ for Multi-dimensional Points
1 question
Addition Operator as Non-Member
13:32
Adding up strings
1 question
Multi-dimensional Points : Non member operator+
1 question
Subscript Operator for Reading
14:54
Read data like a genteleman
1 question
Subscript Operator for Reading and Writing
09:40
Subscript Operator for Collection Types
22:42
Stream Insertion Operation Operator
15:58
You'll print Points!
1 question
You'll print your own strings!
1 question
Stream Extraction Operator
08:37
Other Arithmetic Operators
11:48
Compound Operators && Reusing Other Operators
13:56
Compound operators : Throwing you off!
1 question
operator+= for CU::string
1 question
Custom Type Conversions
26:04
Implicit Conversions with Overriden Binary Operators
12:38
Use CU::strings left and right, like a gentleman.
1 question
Unary Prefix Increment Operator As Member
08:49
Unary Prefix Increment Operator as Non-Member
06:59
Unary Postfix Increment Operator
13:19
Prefix-Postfix Decrement Operator (Exercise)
03:53
Copy Assignment Operator
41:58
Copies : Throwing you off!
1 question
CU::string copy assignment operator
1 question
Copy Assignment Operator for Other Types
08:43
Type Conversions Recap
13:34
Functors
09:10
Distance function object
1 question
Summary
07:46
[Optional] Your very own string class
1 question

Logical Operators and C++ 20 Three Way Comparison Infrastructure

25 lectures
Introduction
02:32
All Logical Operators
17:37
You'll compare CU::string's
1 question
Rel Ops Namespace
14:09
Rel Ops going forward
1 question
Logical Operators with Implicit Conversions
12:20
Compare like a gentleman
1 question
Three way comparison operator
38:33
operator<=> : Throwing you off!
8 questions
Defaulted Equality Operator
19:18
Are Points equal ? Or not equal ?
1 question
Custom equality operator
12:05
Are CU::string's equal? : C++20 Mode!
1 question
Default ordering with spaceship operator
20:35
Default Ordered Points
1 question
Members without the spaceship operator
12:15
Custom spaceship operator for ordering
18:52
Equality and ordering for CU::string
1 question
Logical Operators Simplified
12:48
Spaceship operator as a non member
11:19
Zooming in on weak ordering - Example 1
10:23
Zooming on weak ordering - Example 2
13:55
Zooming on partial ordering
12:55
Summing up on comparisons in C++ 20
05:00
Summary
07:52

Inheritance

24 lectures
Introduction
03:15
First try on Inheritance
25:10
You'll fix the hierarchy
1 question
Protected members
10:56
Member access specifiers : Throwing you off!
1 question
Get it to work
1 question
Base and Derived : Throwing you off balance!
5 questions
Base class access specifiers : Zooming in
04:43
Base class access specifiers : A demo
30:52
Base class access specifiers : Throwing you off!
6 questions
Closing in on Private Inheritance
18:54
Resurecting Members Back in Context
20:22
You'll bring them back!
1 question
Default Constructors with Inheritance
10:38
Mix'em up!
1 question
Custom Constructors With Inheritance
29:18
Chain'em Constructors
1 question
Copy Constructors with Inheritance
24:57
Copy construct'em with inheritance
1 question
Inheriting Base Constructors
14:06
Inherited base constructors : Throwing you off
2 questions
Inheritance and Destructors
06:19
Reused Symbols in Inheritance
08:56
Summary
09:06

Polymorphism

28 lectures
Introduction
05:50
Static Binding with Inheritance
33:15
Static binding : Throwing you off!
3 questions
Dynamic binding with virtual functions
19:07
Build a dynamic inheritance tree
1 question
Help! Help! Weird references here!
1 question
Size of polymorphic objects and slicing
12:06
Sliced off ? : Throwing you off!
2 questions
Polymorphic objects stored in collections (array)
19:04
Override
07:04
Overloading, overriding and function hiding
14:49
Tricky Overloads
1 question
Tricky Hierarchies : Throwing you off!
9 questions
Inheritance and Polymorphism at different levels
25:28
Inheritance and polymorphism with static members
16:10
Static members with inheritance
1 question
Final
18:28
Final and Override are not keywords
05:26
Polymorphic functions and access specifiers
17:00
Non polymorphic functions and access specifiers
10:07
Virtual functions with default arguments
15:35
Virtual Destructors
12:20
Dynamic casts
32:39
Polymorphic Functions and Destructors
16:27
typeid() operator
16:51
Pure virtual functions and abstract classes
18:51
Abstract Classes as Interfaces
23:51
Summary
12:00

Exception Handling

26 lectures
Introduction
02:06
Try and Catch Blocks and scope
27:41
Divide like a boss!
1 question
The need for exceptions
17:29
Handling Exceptions At Different Levels
30:41
Lots of levels : Throwing you off!
3 questions
Multiple Handlers for an Exception
06:46
Nested Try Blocks
10:32
Nest your errors : Throwing you off!
3 questions
Throwing Classs Objects
08:21
Build your own
1 question
Exceptions as Class Objects with Inheritance Hierarchies
11:23
Relatives : Throwing you off!
3 questions
Polymorphic Exceptions
05:03
Relatives, again! : Throwing you off!
2 questions
RethrownExceptions
07:39
Program custom termination
10:00
Ellipsis catch all block
08:23
noexcept Specifier
07:09
Exceptions in Destructors
06:29
Standard Exceptions
02:31
Catching Standard Exceptions
08:37
Throwing Standard Exceptions
06:30
Read files like a gentleman!
1 question
Subclassing Standard Exceptions
08:37
Summary
05:54

BoxContainer class : Practicing what we know

8 lectures
Introduction
11:32
Constructing and destructing
13:08
Adding and Expanding
13:20
Removing Items
16:04
Other operators (=,+,+=)
13:48
Zooming out on BoxContainer
04:42
Storing In Different Types
06:39
Summary
01:47

Class Templates

31 lectures
Introduction
02:28
Your First Class Template
28:56
Building your maps!
1 question
Instances Of Class templates
07:22
Keeping track of your instances : Throwing you off!
2 questions
Non type template parameters
19:00
Multi dimensional points : The swiss army knife class
1 question
Compatible points ? : Throwing you off!
1 question
Default Values for template parameters
10:03
Sane Defaults
1 question
Explicit Template Instantiations
06:17
Template Specialization
21:24
Compare your maps!
1 question
Specialized maps : Throwing you off!
5 questions
Tempate Specialization with select methods
14:17
Comparing Maps ? Not again!!
1 question
Comparing Maps. Yes. Again! : Throwing you off!
1 question
Friends of class templates[Theory intro]
02:29
Friend functions for class templates
11:46
Stream insertion operator for class templates
12:45
Stream insert'em Points!
1 question
Stream insert'em Maps!
1 question
Class templates with type traits and static asserts
11:24
Type traits constrained Maps!
1 question
Class templates with C++ 20 concepts
19:29
Built In Concepts
15:26
Concept constrain your maps!
1 question
Concepts Example #1
09:46
Concepts Example #2
06:10
Making points better to use with operator<<
1 question
Summary
07:49

Move Semantics

14 lectures
Introduction
09:15
Move Semantics : What they're all about
1 question
Lvalues and Rvalues
15:51
Lvalues and Rvalues : Throwing you off!
3 questions
Rvalue references
08:41
Rvalue references : Throwing you off!
1 question
Moving temporaries around
13:37
Move constructors and assignment operators
15:00
Moving from CU::string's
1 question
Moving Lvalues with std::move
12:16
Invalidating pointers after std::move
07:53
Move only types
13:45
Passing by rvalue reference
21:59
Summary
06:31

Function Like Entities

21 lectures
Introduction
05:45
Function Pointers
15:00
Collection Sums
1 question
Callback Functions
21:20
Modifying scores
1 question
Function Pointer Type Aliases
08:56
Function Pointer Type Aliases with Templates
11:51
Functors
11:12
Functor score modifiers
1 question
Standard Functors (in the <functional> header)
14:44
Functors with parameters
14:21
Color Printer
1 question
Functors and lambda functions
08:56
Lambda functions as callbacks
12:28
Capturing by value under the hood
15:51
Capturing by reference under the hood
08:58
Mixin capturing
08:07
Capturing the this pointer
09:03
std::function
20:27
scores modifying std::function
1 question
Summary
06:07

STL, Containers and Iterators

11 lectures
Introduction
07:37
std::vector
21:14
std::array
13:45
Iterators
22:12
Traversing container subsets with iterators
08:25
Reverse iterarators
09:51
Constant iterators
11:05
Iterator types
09:50
std::begin and std::end
07:26
Unions
1 question
Summary
07:04

Zooming in on STL Containers

18 lectures
Introduction
06:17
Sequence Containers : Deque
29:17
Sequence Containers : Forward list
32:16
Sequence Containers : List
21:04
Print positions
1 question
Sequence containers : std::vector revisited
21:26
Sequence Containers : std::array revisited
13:50
Associative Containers : Intro
03:32
Associative Containers : Pair
13:16
Associative Containers : Set
35:23
Associative Containres : Map
24:29
Associative Containers : Multiset & multimap
08:41
Unordered Associative Containers
07:13
Container Adaptors : Intro
08:31
Container Adaptors : Stack
21:51
Container Adaptors: Queue
11:49
Container Adaptors : Priority queue
24:23
Summary
02:00

STL Algorithms

10 lectures
Introduction
03:09
All of
16:20
for_each
12:32
max_element and min_element
11:27
find
07:28
copy
09:15
sort
12:52
Transform
09:13
Summary
02:48
MovableStack
1 question

C++20 Ranges and Range Algorithms

8 lectures
Introduction
01:38
Range Algorithms
16:22
C++ 20 Ranges Library Iterator Pair Algorithms
15:02
Projections
17:22
Views and and Range Adaptors
35:47
View composition and Pipe operator
17:24
Range Factories
12:14
Summary
02:08

Building Custom Iterators for Your Containers

13 lectures
Introduction
05:10
Iterator Powers
19:31
Custom Iterator Theory
07:17
Building Custom Input Iterators
14:03
Building Custom Output Iterators
05:13
Building Custom Forward Iterators
03:36
Building Custom Bidirectional Iterators
05:10
Building Custom Random Access Iterators
06:51
Custom Iterators with C++ 20 Ranges and Views
18:06
Constant Iterators
10:57
Raw Pointers as Iterators
08:02
Wrapping Iterators From Other Containers
04:48
Summary
02:36

C++ 20 Coroutines

10 lectures
Introduction
04:35
Coroutine workflow
06:39
Coroutine keywords
11:57
Couroutine Infrastructure
17:08
co_await
26:37
co_yield
15:37
co_rerturn
12:19
Custom Generator Coroutine Type
22:00
Third Party Generator Type
16:20
Summary
03:22

C++ 20 Modules

16 lectures
Introduction
41:24
Your First Module
14:14
Block Export
03:14
Separating the Module Interface from the Implementation(Same File)
11:45
Separating the Module Interface from the Implementation(Different Files)
14:30
Multiple Implementatyion Files
12:59
Multiple Interface Files
14:47
Export Import
13:04
Sub-Modules
14:57
Module Interface Partitions
16:01
Custom Class Templates as Modules (BoxContainer)
11:32
Modules with Namespaces
14:10
Visibility and Reachability
15:02
Private Module Fragments
08:34
Do's and Don't's
08:14
Summary
03:04

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.