Modern C++ For Beginners

Master the transition from legacy to modern programming with this beginner-friendly guide to C++98 and C++11. You will learn the core foundations of the language alongside modern enhancements like auto, smart pointers, and the STL to write efficient, industry-standard code

Course Description

This course delivers a structured and practical approach to modern C++, covering both foundational concepts and advanced language features required for real-world development. It is designed to bridge the gap between basic programming knowledge and the ability to write efficient, production-quality C++ code.


The course begins with core language fundamentals, including data types, initialization, references, pointers, and the compilation process. It then progresses into systems-level concepts such as memory management, object lifetimes, and function behavior—areas that are critical for understanding how C++ operates under the hood.


Object-oriented programming is explored in depth, with coverage of class design, constructors, destructors, inheritance, and polymorphism. Building on this foundation, the course introduces modern C++ features such as move semantics, smart pointers, perfect forwarding, and lambda expressions, with clear comparisons to traditional C++98 approaches to highlight improvements in safety and expressiveness.


Generic programming is covered through templates, along with advanced features like type traits and static_assert. The course also provides comprehensive coverage of the Standard Template Library (STL), including containers, algorithms, and complexity considerations essential for writing performant code.


With over 11 hours of content across 100+ lessons, the course emphasizes clarity, practical examples, and incremental learning. Each module builds on previous concepts, enabling a deeper understanding of both language mechanics and design principles.

Features

11-hrs On Demand Video

Course Completion Certificate

Priority Q/A

Community Access

Curriculum

Understand in detail on what is planned under each module

Course Instructions

📊 Course Material

[IMPORTANT] Assignment Instructions

Required Software

Visual Studio 2017 Installation

Visual Studio 2019 Installation

Visual Studio 2026 Installation

CodeBlocks Installation

Cevelop Installation

XCode Installation

What is C++

First C++ Program

The C++ Build Process

C++ Types

Basic Console Input/Output

Overview of Debugging in Visual Studio

Uniform Initialization (C++11)

Initializer List

Pointer Type & nullptr

Practice

Reference Type

Practice

References vs Pointers

const Qualifier

constexpr (C++11)

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)

Namespace

enum - Basics

enum - Scoped Enums (C++11)

Quiz

Review

Functions - I

Functions - II

Function Overloading

Default Function Arguments

Inline Functions

Function Pointers

Memory Allocation using malloc

Memory Allocation using new

Allocating Dynamic Arrays - I

Allocating Dynamic Arrays - II

Object Oriented Programming Basics

class

Constructor & Destructor

struct

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

this pointer

Constant Member Functions

Static Member Functions

Delegating Constructor (C++11)

Review

Copy Semantics - I

Copy Semantics - II

Default & Deleted Functions (C++11)

Value Categories (C++11)

Move Semantics Basics

Move Semantics Implementation

Rule of 5 & 0

Copy Elision

std::move Function

Perfect Forwarding - I (C++11)

Perfect Forwarding - II (C++11)

Quiz - Copy, Move Semantics & Perfect Forwarding

Assignment 2 - Copy & Move Semantics

Basic Operators

Assignment Operator

Globally Overloaded Operators

Friend Functions

Operator Overloading Rules

Overloading * and ->

Raw Pointers

unique_ptr

Sharing Pointers

Sharing std::unique_ptr

std::shared_ptr

Strings in C

Strings in C++

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

Quiz - More Core Language Features

Basics

Multiple Catch Blocks

Stack Unwinding

Nested Exceptions

Exception Handling in Constructors & Destructors

noexcept Keyword (C++11)

Raw String Literals (C++11)

File I/O - I

File IO - II

File IO - III

File IO - IV

File IO - V

Introduction

Argument Deduction & Instantiation

Explicit Specialization

Class Templates

Alias Templates (C++11)

Type Traits (C++11)

static_assert (C++11)

Quiz - Templates

Callbacks using Function Pointers

Callbacks using Function Objects

Lambda Expressions

Capture List - I

Capture List - II

Capture List - III

Quiz - Lambda Expressions

Assignment 4 - Lambda Expressions

Introduction

array

vector

deque

list & forward_list

set

map

Unordered Containers - I

Unordered Containers - II

Custom Hash Function

Big O Notation

Algorithms - I

Algorithms II

no curriculum

🏅 Course Certificate

Why Do This Course

Build a strong foundation in modern C++ with a clear progression from fundamentals to intermediate concepts

Gain a deep understanding of memory management and object lifetimes—critical for systems-level programming

Learn modern C++ features (C++11 and beyond) that improve safety, performance, and code clarity

Understand move semantics, smart pointers, and templates—essential for writing production-quality code

Develop the ability to use the STL effectively, including containers, algorithms, and complexity analysis

Bridge the gap between academic knowledge and real-world C++ development practices

Strengthen problem-solving skills through practical examples and structured progression

Requirements

  • Basic experience with C (variables, control flow, functions, pointers
  • Familiarity with using a development environment (IDE or compiler toolchain)
  • Modern C++ compiler (Visual Studio 2022, g++ 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.