Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

Foundations of Modern C++

Packt via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Updated in May 2025. This course now features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. The course begins with setting up your development environment across different platforms, including Visual Studio, Code::Blocks, Cevelop, and XCode. You will then dive into the basic language facilities of C++, starting with variables, primitive types, functions, and debugging in Visual Studio. Later, you'll explore more advanced concepts such as dynamic memory allocation, object-oriented programming, classes, and constructors. As the course progresses, you will work with more complex features of C++ like move semantics, operator overloading, and memory management. You’ll gain practical experience in working with smart pointers (std::unique_ptr, std::shared_ptr, and std::weak_ptr), as well as learn how to handle type conversions and operator overloading in C++ to write more efficient and maintainable code. The course is designed for developers who want to deepen their knowledge of C++ and build powerful, efficient applications. It is ideal for students or professionals with basic programming knowledge looking to take their C++ skills to the next level. No prior experience in C++ is required, but understanding basic programming concepts will be helpful.

Syllabus

  • Start Here
    • In this module, we will introduce the course structure, meet your instructor, and explore the setup process for different C++ development environments across various operating systems. You’ll gain the necessary tools to start writing C++ code.
  • Basic Language Facilities
    • In this module, we will cover foundational C++ programming concepts such as the syntax of C++ programs, basic input/output, memory management, and the process of compiling and debugging. By the end of this section, you’ll be comfortable with C++ programming fundamentals.
  • Memory Management – Part I
    • In this module, we will dive into dynamic memory allocation in C++ with a focus on using the new and new[] operators for allocating memory on the heap. You will also learn how to handle 2D arrays in memory.
  • Classes and Objects
    • In this module, we will focus on object-oriented programming (OOP) in C++, teaching you how to work with classes, objects, and various OOP principles. You’ll also learn advanced concepts like static members and copy constructors.
  • Move Semantics
    • In this module, we will explore the powerful concept of move semantics in C++, focusing on performance optimization. You’ll learn about value categories, the Rule of 5, and the std::move function.
  • Operator Overloading
    • In this module, we will cover operator overloading in detail, including basic to advanced concepts such as the assignment operator, global overloads, and type conversions. You will also explore smart pointers and their integration with operator overloading.
  • Memory Management – Part II
    • In this module, we will advance our memory management skills by learning about smart pointers in C++. You will explore how to use std::unique_ptr, std::shared_ptr, and std::weak_ptr to safely manage memory and prevent resource leaks.
  • More C++ Goodies
    • In this module, we will expand your C++ knowledge with advanced topics like user-defined literals, constexpr, and std::initializer_list. You’ll also dive into dynamic arrays using std::vector and unions.

Taught by

Packt - Course Instructors

Reviews

4.3 rating at Coursera based on 22 ratings

Start your review of Foundations of Modern C++

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.