Разница между использованием обычного указателя и умного указателя при работе с памятью заключается в том, что обычный указатель не управляет временем жизни объекта, ответственность за удаление объекта целиком лежит на программисте. 3 Проще говоря, указатель не «владеет» объектом. 3 Из-за этого приходится внимательно относиться к уничтожению объекта, иначе возможны утечки памяти. 3
Умные указатели — это объекты-обёртки над обычными указателями, которые автоматически управляют временем жизни хранимых в динамической памяти данных. 4 Когда умный указатель выходит из области видимости, его деструктор автоматически освобождает занятую память. 4 Такой подход не только защищает от утечек памяти, но и делает код более понятным — сразу видно намерение программиста относительно владения ресурсом. 4