Complete Modern C C111417

Learn about move semantics, lambda expressions, smart pointers, concurrency, template, STL & more
Complete Modern C C111417
File Size :
8.11 GB
Total length :
19h 56m

Category

Instructor

Umar Lone

Language

Last update

Last updated 11/2022

Ratings

4.4/5

Complete Modern C C111417

What you’ll learn

Use C++ as an object-oriented language
Demystify function & class templates
Use STL components in your applications
Write real-world applications in C++
Apply Modern C++ (C++11/14/17) in programs

Complete Modern C C111417

Complete Modern C C111417-screenshot

Requirements

Basic programming knowledge in any computer language
Some experience of writing programs in any language
Modern C++ compiler, preferably Visual Studio 2015/17/19 Community (or XCode, Clang, g++, Cevelop, Eclipse CDT, Code::Blocks)

Description

Learn C++ in depth with modern features introduced with C++11/14/17Updated with C++17 features!C++ is a general purpose programming language invented by Bjarne Stroustrup. It is still one of the more popular programming languages, used for creating high performance applications across a wide variety of domains & platforms.In 2011, C++11 was born. This revision added lot of new features to the language and it got a new name, Modern C++. This emphasizes writing C++ code using modern features of the language such as move semantics, automatic type inference, threading, lambda expressions, smart pointers and a lot more. C++11 was followed by C++14, that added even more features and enhanced existing ones. C++17 released in 2017 added a filesystem library (covered in the course), parallel versions of STL algorithms, new library types such as std::optional, std::any and more.This course teaches C++ as an object oriented language with modern features. It focuses on teaching C++ concepts, both old and new, with clear examples. It builds upon the basic language facilities that are then used to build more complex programs with classes, operator overloading, composition, inheritance, polymorphism, templates, concurrency, etc. It even digs deep into assembly to understand few concepts better. After every few topics, a quiz is presented that tests your understanding of the previous topics. Have fun learning Modern C++.Note that this course is not for you ifYou have never programmed beforeYou don’t know ANY programming languageYou want to learn basics of programmingUpdate [April 19, 2020] : Biggest update so far. Added C++17 core language changes, template enhancement and new library types.Update [April 11, 2020] : Added content on copy elision, type traits, static_assert & generalized lambda capture, C++11 unionsUpdate [Mar 25, 2020]: XCode installation & high-level concurrency (std::async)Update [Mar 1, 2019] : More videos added for memory management with smart pointers (shared_ptr, unique_ptr, weak_ptr_)Update [Oct 19, 2017] :Instructions added for installing Visual Studio Community 2017, Cevelop (Eclipse) & Code::BlocksUpdate [Sep 29, 2107] : Added more content on dynamic memory allocation (malloc, new[], 2D arrays, strings)Update [Sep 16, 2017] : C++ concurrency (std::thread, std::mutex, etc)Update [April 27, 2017] : Templates, Function Object, Lambda Expressions, Standard Template LibraryUpdate [Mar 23, 2017] : Virtual Inheritance, Exception handling, File I/O, std::filesystem (C++17)Update [Mar 4, 2017] : Strings, stringstreams, enums, inheritance, polymorphismUpdate [Feb 25, 2017] : Source Code of existing topics added

Overview

Section 1: Start Here

Lecture 1 Introduction

Lecture 2 Source Code

Lecture 3 Required software

Lecture 4 Visual Studio 2015 Installation (DEPRECATED)

Lecture 5 Visual Studio 2017 Installation (DEPRECATED)

Lecture 6 Visual Studio 2019 Installation

Lecture 7 Code::Blocks Installation

Lecture 8 Cevelop Installation

Lecture 9 XCode Installation on MacOS

Lecture 10 Course Slides

Section 2: Basic Language Facilities

Lecture 11 What is C++?

Lecture 12 First C++ Program

Lecture 13 The C++ Compilation Process

Lecture 14 Primitive Types & Variables

Lecture 15 Basic Input/Output

Lecture 16 Functions Basics – Part I

Lecture 17 Functions Basics – Part II

Lecture 18 Overview of Debugging in Visual Studio

Lecture 19 Uniform Initialization (C++11)

Lecture 20 Pointers

Lecture 21 Assignment

Lecture 22 Reference

Lecture 23 Assignment

Lecture 24 Reference Vs Pointer

Lecture 25 The const Qualifier

Lecture 26 const Qualifer & Compound Types

Lecture 27 Assignment

Lecture 28 Automatic Type Inference (C++11)

Lecture 29 Range-Based For Loop – I (C++11)

Lecture 30 Range-Based For Loop – II (C++11)

Lecture 31 Function Overloading

Lecture 32 Default Function Arguments

Lecture 33 Inline Functions

Lecture 34 Function Pointers

Lecture 35 Namespace

Section 3: Memory Management – Part I

Lecture 36 Dynamic Memory Allocation – Part I (malloc function)

Lecture 37 Dynamic Memory Allocation – Part II (new operator)

Lecture 38 Dynamic Memory Allocation – Part III (new[] operator)

Lecture 39 Dynamic Memory Allocation – Part IV (2D arrays)

Lecture 40 Dynamic Memory Allocation – Source Code Only

Section 4: Classes & Objects

Lecture 41 Object Oriented Programming Basics

Lecture 42 Class

Lecture 43 Constructor & Destructor

Lecture 44 Structures

Lecture 45 Non-static Data Member Initializers (C++11)

Lecture 46 this Pointer

Lecture 47 Static Class Members

Lecture 48 Constant Member Functions

Lecture 49 Copy Constructor – Part I

Lecture 50 Copy Constructor – Part II

Lecture 51 Delegating Constructors (C++11)

Lecture 52 Default & Deleted Functions (C++11)

Section 5: Move Semantics

Lecture 53 L-values, R-values & R-value References (C++11)

Lecture 54 Move Semantics – Basics (C++11)

Lecture 55 Move Semantics – Implementation (C++11)

Lecture 56 Rule of 5 & 0

Lecture 57 Copy Elision

Lecture 58 std::move Function (C++11)

Section 6: Operator Overloading

Lecture 59 Operator Overloading Demo Code

Lecture 60 Operator Overloading – Part I (Basics)

Lecture 61 Operator Overloading – Part II (Assignment Operator)

Lecture 62 Operator Overloading – Part III (Global Overloads)

Lecture 63 Operator Overloading – Part IV (Friend Keyword)

Lecture 64 Operator Overloading – Part V (Smart Pointer Basics)

Lecture 65 Operator Overloading – Part VI (Smart Pointers in C++11)

Lecture 66 Operator Overloading – Part VII (Rules)

Lecture 67 Type Conversions – Part I (Basics)

Lecture 68 Type Conversions – Part II (Primitive to User Type)

Lecture 69 Type Conversions – Part III (User to Primitive Type)

Lecture 70 Type Conversions – Part IV (User Defined to User Defined)

Lecture 71 Initialization Vs. Assignment & Member Initialization List

Section 7: Memory Management – Part II

Lecture 72 Raw Pointers

Lecture 73 std::unique_ptr

Lecture 74 Sharing Pointers

Lecture 75 Sharing std::unique_ptr

Lecture 76 std::shared_ptr

Lecture 77 Weak Ownership

Lecture 78 std::weak_ptr Internals

Lecture 79 Circular References

Lecture 80 Deleter

Lecture 81 Dynamic Arrays

Lecture 82 Make Functions

Section 8: More C++ Goodies

Lecture 83 Enums – Part I (Basics)

Lecture 84 Enums – Part II (Scoped Enums C++11)

Lecture 85 Strings – Part I (Raw Strings)

Lecture 86 Strings – Part II (std::string)

Lecture 87 Assignment I

Lecture 88 Strings – Part III (String Streams)

Lecture 89 Assignment II

Lecture 90 User-Defined Literals

Lecture 91 Constant Expressions – constexpr (C++11)

Lecture 92 std::initializer_list (C++11)

Lecture 93 Dynamic Array (std::vector)

Lecture 94 Assignment III

Lecture 95 Union – I

Lecture 96 Union – II

Section 9: Object Oriented Programming

Lecture 97 Account Hierarchy Source Code

Lecture 98 Inheritance & Composition

Lecture 99 Inheritance & Access Modifiers

Lecture 100 Project – I (Introduction)

Lecture 101 Project – II (Account & Savings Class)

Lecture 102 Assignment

Lecture 103 Project – III (C++11 Inheriting Constructors)

Lecture 104 Project – IV (Virtual Keyword)

Lecture 105 Project -V (Virtual Mechanism Internals – I)

Lecture 106 Project -VI (Virtual Mechanism Internals – II)

Lecture 107 Project – Part VIII (override & final specifier in C++11)

Lecture 108 Project – VIII (Object Slicing)

Lecture 109 Project – IX (typeid Operator)

Lecture 110 Project – Part X (dynamic_cast Operator)

Lecture 111 Abstract Class

Lecture 112 Multiple (Diamond) Inheritance

Section 10: Exception Handling

Lecture 113 Exception Handling – Part I (Basics)

Lecture 114 Exception Handling – Part II (Multiple Catch Blocks)

Lecture 115 Exception Handling – Part III (Stack Unwinding)

Lecture 116 Exception Handling – Part IV (Nested Exceptions)

Lecture 117 Exception Handling – Part V (Constructor & Destructor)

Lecture 118 Exception Handling – Part VI – (noexcept keyword in C++11)

Section 11: File Input & Output

Lecture 119 Raw String Literals (C++11)

Lecture 120 Introduction to Filesystem Library (C++17) (DEPRECATED)

Lecture 121 File IO – Part I (Basics)

Lecture 122 File IO – Part II (Error Handling)

Lecture 123 File IO – Part III (Copy Utility)

Lecture 124 File IO – Part IV (Character IO & Seeking)

Lecture 125 File IO – Part V (Binary IO)

Lecture 126 Assignment I

Lecture 127 Assignment II

Lecture 128 File Copy Utility Source

Section 12: Templates

Lecture 129 Source Code

Lecture 130 Introduction to Templates

Lecture 131 Assignment I

Lecture 132 Template Argument Deduction & Instantiation

Lecture 133 Assignment II

Lecture 134 Explicit Specialization

Lecture 135 Non-type Template Arguments

Lecture 136 Assignment III

Lecture 137 Perfect Forwarding – Part I (C++11)

Lecture 138 Perfect Forwarding – Part II (C++11)

Lecture 139 Variadic Templates – Part I (C++11)

Lecture 140 Variadic Templates – Part II (C++11)

Lecture 141 Assignment IV

Lecture 142 Class Templates

Lecture 143 Class Template Explicit Specialization – Part I

Lecture 144 Class Template Explicit Specialization – Part II

Lecture 145 Assignment V

Lecture 146 Class Template Partial Specialization

Lecture 147 Typedef, Type Alias & Alias Templates (C++11)

Lecture 148 Type Traits (C++11)

Lecture 149 static_assert (C++11)

Section 13: Lambda Expressions (C++11)

Lecture 150 Lambda Expressions Source Code

Lecture 151 Callbacks Revisited – Function Pointers

Lecture 152 Callbacks – Function Objects

Lecture 153 Lambda Expressions

Lecture 154 Lambda Expressions – Internals

Lecture 155 Lambda Expressions Capture List – Part I

Lecture 156 Lambda Expressions Capture List – Part II

Lecture 157 Lambda Expressions Capture List – Part III

Lecture 158 Generalized Lambda Capture

Lecture 159 Assignment

Section 14: Standard Template Library

Lecture 160 Introduction

Lecture 161 std::array (C++11)

Lecture 162 std::vector

Lecture 163 std::deque

Lecture 164 std::list & std::forward_list (C++11)

Lecture 165 Sequence Containers Demo Code

Lecture 166 std::set & std::multiset

Lecture 167 std::map & std::multimap

Lecture 168 Associative Containers Demo Code

Lecture 169 Unordered Containers (C++11) – I

Lecture 170 Unordered Containers (C++11) – II

Lecture 171 std::hash (C++11)

Lecture 172 Unordered Containers Demo Code

Lecture 173 Big O Notation & Performance of Containers

Lecture 174 Algorithms – Part I

Lecture 175 Algorithms – Part II

Lecture 176 Container Changes in C++11 – I

Lecture 177 Container Changes in C++11 – II

Lecture 178 Container Changes in C++11 – III

Lecture 179 Container Changes in C++11 – IV

Lecture 180 Container Changes in C++11 – V

Lecture 181 STL Project

Section 15: C++ Concurrency

Lecture 182 Concurrency Source Code

Lecture 183 Concurrency Basics

Lecture 184 Thread Creation (std::thread)

Lecture 185 Passing Arguments To Threads

Lecture 186 Thread Synchronization (std::mutex)

Lecture 187 std::lock_guard

Lecture 188 std::thread Functions & std::this_thread Namespace

Lecture 189 Task Based Concurrency – Part I

Lecture 190 Task Based Concurrency – Part II

Lecture 191 Launch Policies

Lecture 192 std::future Wait Functions

Lecture 193 Using std::promise

Lecture 194 Propagating Exceptions Across Threads

Section 16: C++17 Core Language Features

Lecture 195 Source Code Information

Lecture 196 Deprecated & Removed Features

Lecture 197 Changes

Lecture 198 Attributes

Lecture 199 Feature Test Macros

Lecture 200 If & switch With Initialization

Lecture 201 inline Variables

Lecture 202 Nested Namespaces

Lecture 203 noexcept

Lecture 204 constexpr Lambda

Lecture 205 Structured Bindings

Lecture 206 Expression Evaluation Order

Lecture 207 Mandatory Copy Elision – I

Lecture 208 Mandatory Copy Elision – II

Section 17: C++17 Template Features

Lecture 209 Class Template Argument Deduction (CTAD)

Lecture 210 Folding Basics

Lecture 211 Fold Expressions – Unary Folds

Lecture 212 Fold Expressions – Binary Folds

Lecture 213 Fold Expressions – Recap

Lecture 214 Type Traits Suffixes

Lecture 215 if constexpr – I

Lecture 216 if constexpr – II

Section 18: C++17 Standard Library Components

Lecture 217 std::optional – I

Lecture 218 std::optional – II

Lecture 219 std::optional – III

Lecture 220 std::variant – I

Lecture 221 std::variant – II

Lecture 222 std::variant – III

Lecture 223 std::any

Lecture 224 std::string_view – I

Lecture 225 std::string_view – II

Lecture 226 Filesystem – path

Lecture 227 Filesystem – directory_entry

Lecture 228 Filesystem – Directory Functions

Lecture 229 Filesystem – Permissions

Lecture 230 Parallel Algorithms – I

Lecture 231 Parallel Algorithms – II

Lecture 232 Parallel Algorithms – III

Lecture 233 BONUS LECTURE

College students who want to learn Modern C++,Expert C++ developers who want to migrate to Modern C++,C++ developers with varying level of experience, who want to refresh basics of the C++ language and get acquainted with the new features,Software professionals who want to learn & implement Modern C++,Anyone who is comfortable with other languages like C, Java, C#, Python, etc, and wants to learn & apply Modern C++,Anyone interested in learning C++

Course Information:

Udemy | English | 19h 56m | 8.11 GB
Created by: Umar Lone

You Can See More Courses in the Developer >> Greetings from CourseDown.com

New Courses

Scroll to Top