New C++ features: smart pointers
This module is fully dedicated to a feature that was introduced with C++11: smart pointers. With the great power of memory management in C++ comes a great responsibility, and with smart pointers, we can defer part of this responsibility to, well, smart pointers.
We will start with a recap of the basics of pointers in general, where also the topics of function pointers and void pointers are covered (as they will be important later on in other modules). After this, we will cover unique and shared pointers. The module ends with a number of exercises to make you familiar with the use of smart pointers.