Complete Modern C++ (C++11/14/17)
Created By 1
Learn about move semantics, lambda expressions, smart pointers, concurrency, template, STL & more
Created By 1
English
Learn about move semantics, lambda expressions, smart pointers, concurrency, template, STL & more
Created By 1
English
Introduction
Source Code
Required software
Visual Studio 2015 Installation (DEPRECATED)
Visual Studio 2017 Installation (DEPRECATED)
Visual Studio 2019 Installation
Code::Blocks Installation
Cevelop Installation
XCode Installation on MacOS
What is C++?
First C++ Program
The C++ Compilation Process
Primitive Types & Variables
Basic Input/Output
Functions Basics - Part I
Functions Basics - Part II
Overview of Debugging in Visual Studio
Dynamic Memory Allocation - Part I (malloc function)
Dynamic Memory Allocation - Part II (new operator)
Dynamic Memory Allocation - Part III (new[] operator)
Dynamic Memory Allocation - Part IV (2D arrays)
Dynamic Memory Allocation - Source Code Only
Object Oriented Programming Basics
Class
Constructor & Destructor
Structures
Non-static Data Member Initializers (C++11)
this Pointer
Constant Member Functions
L-values, R-values & R-value References (C++11)
Move Semantics - Basics (C++11)
Move Semantics - Implementation (C++11)
Rule of 5 & 0
Copy Elision
std::move Function (C++11)
Operator Overloading Demo Code
Operator Overloading - Part I (Basics)
Operator Overloading - Part II (Assignment Operator)
Operator Overloading - Part III (Global Overloads)
Operator Overloading - Part IV (Friend Keyword)
Operator Overloading - Part V (Smart Pointer Basics)
Operator Overloading - Part VI (Smart Pointers in C++11)
Raw Pointers
std::unique_ptr
Sharing Pointers
Sharing std::unique_ptr
std::shared_ptr
Weak Ownership
std::weak_ptr Internals
Enums - Part I (Basics)
Enums - Part II (Scoped Enums C++11)
Strings - Part I (Raw Strings)
Strings - Part II (std::string)
Strings - Part III (String Streams)
User-Defined Literals
Constant Expressions - constexpr (C++11)
Account Hierarchy Source Code
Inheritance & Composition
Inheritance & Access Modifiers
Project - I (Introduction)
Project - II (Account & Savings Class)
Project - III (C++11 Inheriting Constructors)
Project - IV (Virtual Keyword)Project -V (Virtual Mechanism - 1)
Exception Handling - Part I (Basics)
Exception Handling - Part II (Multiple Catch Blocks)
Exception Handling - Part III (Stack Unwinding)
Exception Handling - Part IV (Nested Exceptions)
Exception Handling - Part V (Constructor & Destructor)
Exception Handling - Part VI - (noexcept keyword in C++11)
NA
Learn C++ in depth with modern features introduced with C++11/14/17
Updated 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 if
You have never programmed before
You don't know ANY programming language
You want to learn basics of programming
Civil engineer who found his calling in software development. Never worked as a Civil engineer, jumped at the first chance and started teaching C++ & Visual C++ 15 years ago. Currently, trains software professionals in various software companies in different technologies, such as Modern C++, Advanced C++, STL, Design Patterns, Android, Unity, Linux, etc. Very passionate about teaching and has trained more than 20,000 software professionals in a teaching career spanning more than 17 years. An avid gamer, currently trying his hand with game development in Unity & Unreal. Has a few Android applications to his credit, including one on Design Patterns.
Only thing he likes more than C++ is Modern C++.