Master C++ from Fundamentals to Modern Features

This comprehensive course guides you through core C++ concepts, object-oriented programming, memory management, and advanced topics including templates, concurrency, and essential C++11, C++14, & C++17 features. Learn to build robust, efficient, and modern C++ applications with practical examples and assignments.

Course Description

Dive deep into C++ with this extensive course, designed to take you from foundational concepts to advanced, modern C++ programming. You'll master essential topics like Object-Oriented Programming (OOP), memory management, and exception handling. The course also covers the intricacies of C++ Templates, Concurrency, and introduces you to crucial features from C++11, C++14, C++17, and C++20. Through practical examples and hands-on assignments, you'll gain the skills to develop robust, efficient, and high-performance C++ applications. This course is ideal for anyone looking to build a strong C++ foundation and stay current with the latest language advancements.

Features

20.5-hrs On Demand Video

Exclusive 1-on-1 With Instructor

Course Completion Certificate

Priority Q/A

Full Lifetime Access

Community Access

Curriculum

Understand in detail on what is planned under each module

๐Ÿง‘โ€๐Ÿซ Course Introduction

๐Ÿ“ž Exclusive 30-Minute Session

๐Ÿ“Š Course Material

๐Ÿ“„ Source Code

Required Software

Visual Studio 2015 Installation

Visual Studio 2017 Installation

CodeBlocks Installation

Cevelop Installation

XCode Installation

What is C++

First C++ Program

The C++ Build Process

C++ Types

Basic Console Input/Output

Functions - I

Functions - II

Overview of Debugging in Visual Studio

Uniform Initialization (C++11)

Pointer Type

Practice

Reference Type

Practice

References vs Pointers

const Qualifier

const Qualifier & Compound Types

Practice

Automatic Type Inference (auto) (C++11)

Range-Based For Loop - I (C++11)

Range-Based For Loop - II (C++11)

Function Overloading

Default Function Overloading

Inline Functions

Function Pointers

Namespace

Quiz

Review

Memory Allocation using malloc

Memory Allocation using new

Allocating Dynamic Arrays - I

Allocating Dynamic Arrays - II

Review

Object Oriented Programming Basics

class

Constructor & Destructor

struct

Non-static Data Member Initialization (C++11)

this pointer

Constant Member Functions

State Member Functions

Copy Semantics - I

Copy Semantics - II

Delegating Constructor (C++11)

Default & Deleted Functions (C++11)

Review

Value Categories (C++11)

Move Semantics Basics

Move Semantics Implementation

Rule of 5 & 0

Copy Elision

std::move Function

Quiz

Basic Operators

Assignment Operator

Global Overloaded Operators

Friend Functions

Smart Pointers - I

Smart Pointers - II

Operator Overloading Rules

Type Conversion Overview

Type Conversion - Primitive to User-defined

Type Conversion - User-defined to Primitive

Initialization vs assignment

Review

Raw Pointers

unique_ptr

Sharing Pointers

Sharing std::unique_ptr

std::shared_ptr

Weak Ownership

weak_ptr Internals

Circular Reference

Deleter

Dynamic Arrays

Make Functions

enum - Basics

enum - Scoped Enums (C++11)

Strings in C

Strings in C++

Practice

StringStreams

Practice

User Defined Literals

constexpr (C++11)

Initializer List

Dynamic Array - vector

Union - II

Practice

Reuse

Inheritance & Access Modifiers

Project I

Project II

Project - III Exercise

Project IV

Project V

Project VI

Project VII

Project VIII

Upcasting & Downcasting

RTTI Overview

RTTI Operators

Abstract Class

13. Multiple Inheritance

Review

Basics

Multiple Catch Blocks

Stack Unwinding

Nested Exceptions

Exception Handling in Constructors & Destructors

noexcept Keyword (C++11)

Raw String Literals (C++11)

Filesystem Overview (C++17)

File IO - Part I

File IO - Part II

File IO - Part III

File IO - Part IV

File IO - Part V

Introduction

Argument Deduction & Instantiation

Explicit Specialization

Nontype Template Arguments

Perfect Forwarding - I (C++11)

Perfect Forwarding - II (C++11)

Variadic Templates - I

Variadic Templates II

Fold Expressions - I (C++17)

Fold Expressions - II (C++17)

Fold Expressions - III (C++17)

Fold Expressions - IV (C++17)

Class Templates

Class Explicit Specialization - I

Class Explicit Specialization - II

Partial Specialization

Alias Templates (C++11)

Type Traits (C++11)

Type Traits Suffixes (C++14)

static_assert (C++11)

TypeTraits

StaticAssert

Class Template ArgumentDeduction

Compile-time If - I

Compile-time If - II

Callbacks using Function Pointers

Callbacks using Function Objects

Lambda Expressions

Lambda Expressions - Internals

Capture List - I

Capture List - II

Capture List - III

Generalized Lambda Capture (C++14)

std::function - I

std::function - II

std::bind-I

std::bind - II

std::bind - III

Introduction

array

vector

deque

list

set

map

Unordered Containers - I

Unordered Containers - II

Custom Hash Function

Big O Notation

Algorithms - I

Algorithms II

Container Changes in C++11 - I

Container Changes in C++11 - II

Container Changes in C++11 - III

Container Changes in C++11 - IV

Container Changes in C++11 - V

Concurrency Basics

Thread creation

Passing Arguments

Thread Synchronization

lock_guard

More Thread functions

async - I

async - II

Launch Policies

Future

Promise

Exceptions

Deprecated & Removed Features

Changes

Attributes

Feature Test Macros

ifswitch with Initialization

inline variables

Nested Namespaces

noexcept Change

constexpr Lambda

Structured Bindings

EvaluationOrder

Mandatory Copy Elision - I

Mandatory Copy Elision - II

Optional - I

Optional - II

Optional - III

Variant - I

Variant - II

Variant - III - Visit

any

String View - I

String View - II

Filesystem - path

Filesystem - directory_entry

Filesystem - directory functions

Filesystem - permissions

Parallel Algorithms - I

Parallel Algorithms - II

Parallel Algorithms - III

Before you go...

๐Ÿ… Course Certificate

Why Do This Course

Go beyond the basics and gain a deep understanding of C++ fundamentals, including syntax, data types, control flow, and core programming paradigms

Learn to design and implement robust, maintainable, and scalable applications using classes, objects, inheritance, polymorphism, and more

Understand pointers, dynamic memory allocation (new/delete), and crucially, modern smart pointers to write memory-safe code

Demystify function and class templates, explicit and partial specialization, variadic templates, and perfect forwarding to write highly reusable and generic code

Stay current with the language by exploring essential features like auto, constexpr, lambda expressions, move semantics, structured bindings, if constexpr, and more

Learn to write multi-threaded applications using std::thread, mutexes, lock_guard, async, future, and promise for high-performance computing

Reinforce your understanding with numerous code examples, practical demonstrations, and challenging assignments designed to solidify your skills

Equip yourself with the knowledge and techniques used in professional C++ development across various industries, including game development, finance, embedded systems, and high-performance computing

Requirements

  • Basic knowledge of C or any other programming language
  • Modern C++ compiler (Visual Studio 2022, gcc 13, clang 17)

Related Products

Additional courses that may be relevant to your interests

Image23

Instructor


- Hello! I'm Umar Lone

I've educated and mentored students and professionals globally, leveraging over 20 years of experience in C++, Object-Oriented Programming, Design Patterns, and related technologies. My professional background includes significant contributions to C++, Java, and C# projects with esteemed companies, alongside providing specialized project consultation & mentoring.


My current focus is on delivering comprehensive video courses that distill this extensive knowledge. I specialize in transforming intricate concepts into clear, practical, and actionable insights, supported by real-world examples. This approach is designed to equip you with the necessary clarity and confidence for sustained growth and impactful contributions within your projects and career trajectory.


Begin your learning journey with me now and unlock the advanced understanding and practical expertise essential for making a significant impact in your field.


Keep in touch

Subscribe for announcements, new courses & discount coupons

By submitting you agree to receive our newsletter as well as other promotional emails.