Вопросы к Поиску с Алисой
Смарт-указатели в C++ считаются более безопасными, чем обычные указатели, благодаря автоматическому управлению памятью. proglib.io learn.microsoft.com
Например, умный указатель std::unique_ptr ссылается на объект в динамической памяти и при выходе из области видимости уничтожает хранимый объект. proglib.io Это происходит потому, что в своём деструкторе умный указатель вызывает delete для объекта, на который ссылается, высвобождая тем самым память. proglib.io
Также от проблем с внезапными исключениями программистов, использующих умные указатели, защищает механизм развёртывания стека (stack-unwinding). proglib.io Если на стеке был создан объект, а после этого было выброшено исключение, C++ гарантированно вызовет деструктор для этого объекта. proglib.io
Важно понимать, что умные указатели — не панацея, и при использовании обычных указателей в программе всё равно остаётся возможность написать опасный код. pro-prof.com