Modern C++ Memory Management: Learn to write good code fast

Using the power of C++11 to efficiently write reliable software
4.0 (15 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
1,044 students enrolled
25% off
Take This Course
  • Lectures 20
  • Length 2 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 9/2016 English

Course Description

In this course you will learn how to use the power of modern C++ to write reliable C++ code. C++ is otherwise known to be a difficult language, partly because of all the troubles in keeping track of allocated memory resources. 

By taking this course you will learn how to write better C++ code. Code which is not just easier to read, but also faster to write, faster to debug and faster to run! You will learn the structures and principles used in modern C++ to avoid the headaches of manual memory management completely.

Please enjoy this course. I hope you truly enjoy it!



P.S. If you are not completely happy with the contents, you are entitled to a no-questions-asked 30 day 100% money-back guarantee.

What are the requirements?

  • This course assumes that you have a basic knowledge of C++ and know how to write a simple C++ program. You may have used C++ professionally or just taken a course or two.

What am I going to get from this course?

  • You will learn how to avoid the headache of manual memory management by using structures and principles of modern C++.

What are the requirements?

  • You should have a basic knowledge of C++.

What am I going to get from this course?

  • Write safe and efficient C++ code without memory leaks or memory corruption
  • Use the features of modern C++ to be more productive

Who is the target audience?

  • This course is for software developers with a basic knowledge of C++ and who are writing/modifying C++ code.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction and Getting Started

Background into how C++ defines its memory. We'll show what the stack and the free store are, how we allocate objects on the stack and the free store and what the difference is for us as developers. 


Understanding what it means to manage the memory while programming in C++. Also listing the most common types of memory errors.


Taking the theoretical discussion of what a memory leak is into real world examples in real C++ code. 

Demo: The stack, the free store and the heap
Stack, free store and the heap
3 questions

Taking the theoretical discussion of what an invalid pointer is into real world examples in real C++ code. 

Section 2: Elements of Modern C++

Introducing the concept of RAII - resource acquisition is initalization. This is not just an awkward acronym, but is an extremely useful concept in C++ and is the basis of modern C++ resource management. 

Solid Objects and scoped objects

Overview of the smart pointers which exists in standard C++.


Introduction to std::unique_ptr, how to create it and how to use it.


Demonstration of how to create, use, pass and reset the std::unique_ptr. 

The Unique Pointer
3 questions

Introduction to std::shared_ptr, how to create it and how to use it. Also why the shared pointer can cause leaks which is exactly what we wanted to avoid!


Demonstration of how to create, use and reset the std::shared_ptr. 

Shared pointer
3 questions

Introduction to the std::weak_ptr, how it solves the problem with shared_ptr and how to create it.


Demonstration of how to create and use the std::weak_ptr


Introduction to std::vector which removes the need to allocate arrays using new[]. This shows how the vector works and why this is better than the old arrays. 

Demo: using the vector class
6 questions

Self check to make sure you understood how to use the std::vector

Section 3: Solving Errors using Modern C++

When and why the destructor of your class should be virtual

Demo: solving the dangling pointer
Demo: Dealing with legacy code

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Mattias Johansson, Senior Software Engineer

Hi, I'm Mattias Johansson and I have been working on developing software in C++ for more than 15 years by now. I have always enjoyed diving into solving difficult problems as well as developing computer software.

I live in Göteborg, Sweden, where I have been living since 1999. I moved here to start my studies at Chalmers University. I liked the city and have since then stayed. After I took my M.Sc in Applied Physics, I went on to do a PhD in Optical Remote Sensing. During my studies I implemented the methods and algorithms  which I was trying to develop in C++. Honestly, the code wasn't that great looking, but which research code is? Well, after I finished I joined a great company called Thorlabs where I was working on designing and developing software for data analysis and instrument control. I really learned a lot on how to write good quality software during my more than six years at the company. However, as time goes I felt it was time to move on and I have now joined a small company in town which develops software (in C++ mostly) and algorithms for computer vision and image analysis.  

Ready to start learning?
Take This Course