Learn Advanced Modern C

Take your knowledge of C++ to the next level!
Learn Advanced Modern C
File Size :
12.61 GB
Total length :
24h 2m



James Raynard


Last update

Last updated 11/2022



Learn Advanced Modern C

What you’ll learn

Know and understand all the important features of modern C++
Acquire a good knowledge of the Standard Template Library, including algorithms (“the best-kept secret in C++”)
Learn how to use modern C++ to write code which is safer, more expressive and more efficient
Throrough coverage of C++11, C++14 and the most important features of C++17
How to write a game using Modern C++ and the SFML graphics library

Learn Advanced Modern C

Learn Advanced Modern C-screenshot


Some knowledge of C++ beyond beginner level
A compiler which supports C++11, preferably C++14 or C++17
Proficiency in English (B2 level, preferably C1)


This course will enhance your knowledge of the technically challenging but powerful and efficient C++ programming language.It is designed to give you an intermediate-to-advanced level understanding of the language. There is extensive coverage of the Standard Template Library, including standard algorithm functions. Finally, a project in which you will exercise your new skills by writing a simple game.After successfully completing this course, you should be able to apply for jobs and courses which require a good knowledge of C++.The material is based around the modern version of the language. I teach the C++11, C++14 and C++17 standards, but also cover older variations which are still widely used.The course is thorough and goes into the material in depth. It assumes basic C++ knowledge, such as the material in my  course “Begin Programming with Modern C++”: function calls, loops, conditionals and classes.There are downloadable exercises for each video, with solutions, so you can check your understanding as you learn, gaining familiarity and confidence with the material. I will be actively supporting the course and I will respond promptly if you have any questions or experience difficulties with the course content. Please feel free to use the Q&A feature or alternatively you can send me a private message.


Section 1: Introduction

Lecture 1 Introduction to the Course

Lecture 2 Lecturer Introduction

Lecture 3 Source Code for this Course

Section 2: Review of C++

Lecture 4 Local Variables and Function Arguments

Lecture 5 Reference and Value Semantics

Lecture 6 Declaration and Initialization

Lecture 7 Classes

Lecture 8 Special Member Functions

Lecture 9 Pointers and Memory

Lecture 10 Array, String and Vector

Lecture 11 Conway’s Game of Life Overview

Lecture 12 Two-Dimensional Arrays

Lecture 13 Conway’s Game of Life Practical

Lecture 14 Conway’s Game of Life Practical Continued

Lecture 15 Numeric Types and Literals

Lecture 16 String Literals

Lecture 17 Casting

Lecture 18 Iterator Introduction

Lecture 19 The auto keyword

Lecture 20 Loops and Iterators

Lecture 21 Iterator Arithmetic and Iterator Ranges

Lecture 22 If Statements and Switch in C++17

Lecture 23 Templates Overview

Lecture 24 Namespaces

Lecture 25 Function Pointer

Section 3: C++ String Interface

Lecture 26 Basic String Operations

Lecture 27 Searching Strings

Lecture 28 Adding Elements to Strings

Lecture 29 Removing Elements from Strings

Lecture 30 Converting between Strings and Numbers

Lecture 31 Miscellaneous String Operations

Lecture 32 Character Functions

Section 4: Files and Streams

Lecture 33 Files and Streams

Lecture 34 File Streams

Lecture 35 Streams and Buffering

Lecture 36 Unbuffered Input and Output

Lecture 37 File Modes

Lecture 38 Stream Member Functions and State

Lecture 39 Stream Manipulators and Formatting

Lecture 40 Floating-point Output Formats

Lecture 41 Stringstreams

Lecture 42 Resource Management

Lecture 43 Random Access to Streams

Lecture 44 Stream Iterators

Lecture 45 Binary Files

Lecture 46 Binary File Practical

Section 5: Special Member Functions and Operator Overloading

Lecture 47 Constructors in Modern C++

Lecture 48 Copy Constructor Overview

Lecture 49 Assignment Operator Overview

Lecture 50 Synthesized Member Functions

Lecture 51 Shallow and Deep Copying

Lecture 52 Copy Elision

Lecture 53 Conversion Operators

Lecture 54 Default and Delete Keywords

Lecture 55 Operators and Overloading.

Lecture 56 Which Operators to Overload

Lecture 57 The Friend Keyword

Lecture 58 Member and Non-member Operators

Lecture 59 Addition Operators

Lecture 60 Equality and Inequality Operators

Lecture 61 Less-than Operator

Lecture 62 Prefix and Postfix Operators

Lecture 63 Function Call Operator

Lecture 64 Printing Out Class Member Data

Section 6: Algorithms Introduction and Lambda Expressions

Lecture 65 Algorithms Overview

Lecture 66 Algorithms with Predicates

Lecture 67 Algorithms with _if Versions

Lecture 68 Lambda Expressions Introduction

Lecture 69 Lambda Expressions Practical

Lecture 70 Lambda Expressions and Capture

Lecture 71 Lambda Expressions and Capture Continued

Lecture 72 Lambda Expressions and Partial Evaluation

Lecture 73 Lambda Expressions in C++14

Lecture 74 Pair Type

Lecture 75 Insert Iterators

Lecture 76 Library Function Objects

Section 7: Algorithms Continued

Lecture 77 Searching Algorithms

Lecture 78 Searching Algorithms Continued

Lecture 79 Numeric Algorithms

Lecture 80 Write-only Algorithms

Lecture 81 for_each Algorithm

Lecture 82 Copying Algorithms

Lecture 83 Write Algorithms

Lecture 84 Removing Algorithms

Lecture 85 Removing Algorithms Continued

Lecture 86 Transform Algorithm

Lecture 87 Merging Algorithms

Lecture 88 Reordering Algorithms

Lecture 89 Partitioning Algorithms

Lecture 90 Sorting Algorithms

Lecture 91 Sorting Algorithms Continued

Lecture 92 Permutation Algorithms

Lecture 93 Min and Max Algorithms

Lecture 94 Further Numeric Algorithms

Lecture 95 Further Numeric Algorithms Continued

Lecture 96 Introduction to Random Numbers

Lecture 97 Random Numbers in Older C++

Lecture 98 Random Numbers in Modern C++

Lecture 99 Random Number Algorithms

Lecture 100 Palindrome Checker Practical

Lecture 101 Random Walk Practical

Section 8: Containers

Lecture 102 Container Introduction

Lecture 103 Standard Library Array

Lecture 104 Forward List

Lecture 105 List

Lecture 106 List Operations

Lecture 107 Deque

Lecture 108 Tree Data Structure

Lecture 109 Sets

Lecture 110 Map

Lecture 111 Maps and Insertion

Lecture 112 Maps in C++17

Lecture 113 Multiset and Multimap

Lecture 114 Searching Multimaps

Lecture 115 Unordered Associative Containers

Lecture 116 Unordered Associative Containers Continued

Lecture 117 Associative Containers and Custom Types

Lecture 118 Nested Maps

Lecture 119 Queues

Lecture 120 Priority Queues

Lecture 121 Stack

Lecture 122 Emplacement

Lecture 123 Mastermind Game Practical

Lecture 124 Containers Workshop

Section 9: Inheritance and Polymorphism

Lecture 125 Class Hierarchies and Inheritance

Lecture 126 Base and Derived Classes

Lecture 127 Member Functions and Inheritance

Lecture 128 Overloading Member Functions

Lecture 129 Pointers, References and Inheritance

Lecture 130 Static and Dynamic Type

Lecture 131 Virtual Functions

Lecture 132 Virtual Functions in C++11

Lecture 133 Virtual Destructor

Lecture 134 Interfaces and Virtual Functions

Lecture 135 Virtual Function Implementation

Lecture 136 Polymorphism

Section 10: Error Handling and Exceptions

Lecture 137 Error Handling

Lecture 138 Error codes and Exceptions

Lecture 139 Exceptions Introduction

Lecture 140 Try and Catch Blocks

Lecture 141 Catch-all Handlers

Lecture 142 Exception Mechanism

Lecture 143 std::exception Hierarchy

Lecture 144 Standard Exception Subclasses

Lecture 145 Exceptions and Special Member Functions

Lecture 146 Custom Exception Class

Lecture 147 Exception Safety

Lecture 148 The throw() Exception Specifier

Lecture 149 The noexcept keyword

Lecture 150 Swap Function

Lecture 151 Exception-safe Class

Lecture 152 Copy and Swap

Lecture 153 Comparison with Java and C# Exceptions

Section 11: Move Semantics

Lecture 154 Move Semantics

Lecture 155 Lvalues and Rvalues

Lecture 156 Lvalue and Rvalue References

Lecture 157 Value Categories

Lecture 158 Move Operators

Lecture 159 RAII Class with Move Operators

Lecture 160 Move-only Types and RAII

Lecture 161 Special Member Functions in C++11

Lecture 162 Using Special Member Functions in C++11

Lecture 163 Function Arguments and Move Semantics

Lecture 164 Forwarding References

Lecture 165 Perfect Forwarding

Lecture 166 Perfect Forwarding Practical

Lecture 167 Move Semantics Workshop

Section 12: Smart Pointers

Lecture 168 Smart Pointers Introduction

Lecture 169 Unique Pointer

Lecture 170 Unique Pointers and Polymorphism

Lecture 171 Unique Pointers and Custom Deleters

Lecture 172 The Handle-Body Pattern

Lecture 173 The pImpl Idiom

Lecture 174 Reference Counting

Lecture 175 Shared pointer

Lecture 176 Weak Pointer

Lecture 177 Weak Pointer and Cycle Prevention

Section 13: Miscellaneous Features

Lecture 178 Chrono Library Introduction

Lecture 179 Chrono Duration Types

Lecture 180 Chrono Clocks and Time Points

Lecture 181 Bitsets

Lecture 182 Tuples

Lecture 183 Tuples in C++17

Lecture 184 Unions

Lecture 185 Unions Continued

Lecture 186 Mathematical Types

Lecture 187 Bind

Lecture 188 Callable Objects

Lecture 189 Member Function Pointers

Lecture 190 Interfacing to C

Lecture 191 Run-time Type Information

Lecture 192 Multiple Inheritance

Lecture 193 Virtual Inheritance

Lecture 194 Inline Namespaces

Lecture 195 Attributes

Section 14: Compile-time Programming

Lecture 196 Compile-time Programming Overview

Lecture 197 Constant Expressions

Lecture 198 Constexpr Functions

Lecture 199 Classes and Templates

Lecture 200 Template Specialization

Lecture 201 Extern Templates

Lecture 202 Variadic Templates

Lecture 203 Miscellaneous Template Features

Lecture 204 Library-defined Operators

Lecture 205 Constexpr If Statement

Lecture 206 Constexpr If Examples

Lecture 207 The decltype Keyword

Section 15: Project: A Breakout Game Using Modern C++ with SFML

Lecture 208 Project Breakout

Lecture 209 SFML Introduction

Lecture 210 Compiler Configuration for SFML

Lecture 211 Basic Window

Lecture 212 Random Walk Revisited

Lecture 213 Sprite

Lecture 214 Ball

Lecture 215 Bouncing Ball

Lecture 216 Paddle

Lecture 217 Moving Paddle

Lecture 218 Ball-Paddle Interaction

Lecture 219 Bricks

Lecture 220 Ball Interaction with Bricks

Lecture 221 Game Manager

Lecture 222 Entity Manager Overview

Lecture 223 Entity Manager and Object Creation

Lecture 224 Entity Manager and Object Operations

Lecture 225 Brick Strength

Lecture 226 More Features

Lecture 227 Conclusion

Section 16: Resources

Lecture 228 Recommended Books

Lecture 229 C++ “Cheat Sheet” Infographics

Lecture 230 The “Awesome C++ Frameworks and Libraries” Github

Lecture 231 The “Awesome Modern C++ Resources” Github

Lecture 232 Bonus Material

Programmers who have some knowledge of Intermediate C++ and want to learn more,C++ developers who wish to refresh and/or update their skills

Course Information:

Udemy | English | 24h 2m | 12.61 GB
Created by: James Raynard

You Can See More Courses in the IT & Software >> Greetings from CourseDown.com

New Courses

Scroll to Top