The 2023 Premium C Programming Developer Bundle

3 Reviews
8 Courses & 84 Hours
You save 97% -

What's Included

Complete Modern C++
  • Experience level required: All levels
  • Access 198 lectures & 19 hours of content 24/7
  • Length of time users can access this course: Lifetime

Course Curriculum

198 Lessons (19h)

  • Your First Program

  • Start Here

    Visual Studio 2015 Installation4:32
    Visual Studio 2017 Installation2:44
    Blocks Installation5:06
    Cevelop Installation5:22
    XCode Installation on MacOS3:28
  • Basic Language Facilities

    What is C++?3:31
    First C++ Program9:12
    The C++ Compilation Process3:09
    Primitive Types and Variables7:57
    Basic Input/Output5:56
    Functions Basics - Part I7:28
    Functions Basics - Part II9:05
    Overview of Debugging in Visual Studio5:40
    Uniform Initialization (C++11)9:21
    Reference Versus Pointer6:58
    The const Qualifier4:19
    const Qualifier and Compound Types7:30
    Automatic Type Inference (C++11)7:00
    Range-Based For Loop - I (C++11)4:32
    Range-Based For Loop - II (C++11)6:12
    Function Overloading13:27
    Default Function Arguments3:43
    Inline Functions7:36
    Function Pointers4:53
  • Memory Management – Part I

    Dynamic Memory Allocation - Part I (malloc Function)9:36
    Dynamic Memory Allocation - Part II (new Operator)6:19
    Dynamic Memory Allocation - Part III (new[] Operator)6:40
    Dynamic Memory Allocation - Part IV (2D Arrays)5:07
  • Classes and Objects

    Object-Oriented Programming Basics5:50
    Constructor and Destructor4:28
    Non-Static Data Member Initializers (C++11)4:39
    this Pointer4:46
    Constant Member Functions3:14
    Static Class Members5:12
    Copy Constructor - Part I4:52
    Copy Constructor - Part II4:40
    Delegating Constructors (C++11)4:01
    Default and Deleted Functions (C++11)5:18
    L-values, R-values, and R-value References (C++11)7:10
    Move Semantics - Basics (C++11)3:23
    Move Semantics - Implementation (C++11)4:19
    Copy Elision8:26
    Move Semantics - std::move Function (C++11)2:55
  • Move Semantics

    Value Categories7:10
    Move Semantics – Basics3:23
    Move Semantics – Implementation3:45
    Rule of 5 and 014:30
    Copy Elision8:22
    std::move Function7:52
  • Operator Overloading

    Operator Overloading - Part I (Basics)8:29
    Operator Overloading - Part II (Assignment Operator)4:18
    Operator Overloading - Part III (Global Overloads)5:48
    Operator Overloading - Part IV (Friend Keyword)2:29
    Operator Overloading - Part V (Smart Pointer Basics)5:04
    Operator Overloading - Part VI (Smart Pointers in C++11)4:34
    Operator Overloading - Part VII (Rules)1:55
    Type Conversions - Part I (Basics)5:56
    Type Conversions - Part II (Primitive to User Type)5:40
    Type Conversions - Part III (User to Primitive Type)2:50
    Initialization Versus Assignment and Member Initialization List5:18
  • Memory Management – Part II

    Raw Pointers5:12
    Sharing Pointers6:12
    Sharing std::unique_ptr4:35
    Weak Ownership8:50
    std::weak_ptr Internals6:28
    Circular References10:28
    Dynamic Arrays3:27
    Make Functions5:43
  • More C++ Goodies

    Enums - Part I (Basics)3:42
    Enums - Part II (Scoped Enums C++11)5:32
    Strings - Part I (Raw Strings)6:49
    Strings - Part II (std::string)10:05
    Strings - Part III (String Streams)9:45
    Constant Expressions - constexpr (C++11)9:24
    std::initializer_list (C++11)8:27
    Dynamic Array (std::vector)8:43
    Union - I4:51
    Union - II4:56
  • Object-Oriented Programming

    Inheritance and Composition6:01
    Inheritance and Access Modifiers3:55
    Project - Part I (Beginning)2:06
    Project - Part II (Account and Savings Implementation)6:59
    Project - Part III (Inheriting Constructors)6:31
    Project - Part IV (Virtual Keyword)8:53
    Project - Part V (Virtual Mechanism Internals)7:11
    Project - Part VI (Virtual Mechanism Walk-through and Virtual Destructor)6:43
    Project - Part VII (override and final specifier)6:13
    Project - Part VIII (Upcasting and Downcasting)5:45
    Project - Part IX (RTTI Basics)7:11
    Project – Part X (dynamic_cast)6:08
    Abstract Class6:03
    Multiple (Diamond) Inheritance9:22
  • Exception Handling

    Exception Handling - Part I (Basics)7:59
    Exception Handling - Part II (Multiple Catch Blocks)3:59
    Exception Handling - Part III (Stack Unwinding)6:31
    Exception Handling - Part IV (Nested Exceptions)5:11
    Exception Handling - Part V (Constructor and Destructor)7:06
    Exception Handling - Part VI - (noexcept Keyword in C++11)8:20
  • File Input and Output

    Raw String Literals (C++11)4:03
    Introduction to Filesystem Library (C++17)3:49
    File IO - Part I (Basics)6:44
    File IO - Part II (Error Handling)5:43
    File IO - Part III (Copy Utility)3:29
    File IO - Part IV (Character IO and Seeking)7:22
    File IO - Part V (Binary IO)8:30
  • Templates

    Introduction to Templates7:48
    Template Argument Deduction and Instantiation6:28
    Explicit Specialization5:54
    Non-type Template Arguments7:15
    Perfect Forwarding - Part I (C++11)7:23
    Perfect Forwarding - Part II (C++11)5:32
    Variadic Templates - Part I (C++11)9:47
    Variadic Templates - Part II (C++11)4:50
    Class Templates8:34
    Class Template Explicit Specialization - Part I5:41
    Class Template Explicit Specialization - Part II4:02
    Class Template Partial Specialization6:52
    Typedef, Type Alias, and Alias Templates (C++11)8:00
    Type Traits (C++11)7:21
    static_assert (C++11)4:19
  • Lambda Expressions (C++11)

    Callbacks Revisited - Function Pointers6:39
    Callbacks - Function Objects6:57
    Lambda Expressions4:36
    Lambda Expressions - Internals5:01
    Lambda Expressions Capture List - Part I8:25
    Lambda Expressions Capture List - Part II4:08
    Lambda Expressions Capture List - Part III5:52
    Generalized Lambda Capture4:33
  • Standard Template Library

    std::array (C++11)4:02
    std::list and std::forward_list (C++11)4:59
    std::set and std::multiset5:42
    std::map and std::multimap7:35
    Unordered Containers (C++11)8:01
    std::hash (C++11)2:42
    Big O Notation and Performance of Containers5:04
    Algorithms - Part I8:15
    Algorithms - Part II7:04
  • C++ Concurrency

    Concurrency Basics6:12
    Thread Creation (std::thread)5:47
    Passing Arguments to Threads4:18
    Thread Synchronization (std::mutex)6:18
    std::thread Functions and std::this_thread Namespace7:48
    Task-Based Concurrency - Part I5:07
    Task-Based Concurrency - Part II3:44
    Launch Policies4:38
    std::future Wait Functions5:07
    Using std::promise5:36
    Propagating Exceptions Across Threads3:15
  • C++17 Core Language Features

    Deprecated and Removed Features3:53
    Feature Test Macros5:51
    If and switch with Initialization5:47
    Inline Variables5:45
    Nested Namespaces1:51
    constexpr Lambda7:47
    Structured Bindings8:07
    Expression Evaluation Order6:36
    Mandatory Copy Elision - I4:28
    Mandatory Copy Elision - II4:33
  • C++17 Template Features

    Compiled Time Argument Deduction (CTAD)5:41
    Folding Basics4:05
    Fold Expressions - Unary Folds4:27
    Fold Expressions - Binary Folds5:48
    Fold Expressions - Recap2:34
    Type Traits Suffixes3:22
    if constexpr - I7:42
    if constexpr - II4:43
  • C++17 Standard Library Components

    std::optional - I5:18
    std::optional - II3:50
    std::optional - III3:38
    std::variant - I5:57
    std::variant - II4:34
    std::variant - III5:58
    std::string_view - I8:39
    std::string_view - II8:13
    Filesystem - path5:49
    Filesystem - directory_entry7:00
    Filesystem - Directory Functions5:09
    Filesystem - Permissions5:44
    Parallel Algorithms - I3:49
    Parallel Algorithms - II7:32
    Parallel Algorithms - III4:24

Complete Modern C++

Packt Publishing

Packt Publishing | Tech Knowledge in Motion

4.0/5 Instructor Rating: ★ ★ ★ ★

Packt’s mission is to help the world put software to work in new ways, through the delivery of effective learning and information services to IT professionals. Working towards that vision, it has published over 4,000 books and videos so far, providing IT professionals with the actionable knowledge they need to get the job done–whether that’s specific learning on an emerging technology or optimizing key skills in more established tools.


In this course, you will explore C++ and get to grips with the modern features introduced in C++17. C++ is a general-purpose programming language developed by Bjarne Stroustrup in 1979, and it is still one of the most popular programming languages used to create high-performance applications across a wide variety of domains and platforms. This course will help you learn C++ as an object-oriented language with modern features, covering both old and new C++ concepts with clear examples.

4.5/5 average rating: ★ ★ ★ ★

  • Access 198 lectures & 19+ hours of content 24/7
  • Build complex programs, including classes, operator overloading, composition, & more
  • Master the C++ compilation process
  • Obtain the key concepts of programming that will also apply to other programming languages
  • Use C++ as an object-oriented language


Important Details

  • Length of time users can access this course: lifetime
  • Access options: desktop or mobile
  • Redemption deadline: redeem your code within 30 days of purchase
  • Experience level required: beginner
  • Updates included
  • Have questions on how digital purchases work? Learn more here


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


  • Unredeemed licenses can be returned for store credit within 30 days of purchase. Once your license is redeemed, all sales are final.
Your cart is empty. Continue Shopping!
Processing order...