Как устроены умные указатели C++
Привет.Частое использование указателей приводит к путанице и дублированию кода (при создании например указателей, которые нужны нам только в области работы функции, придётся прописывать оператор delete, чтобы устранить утечку памяти). Поэтому в C++ есть shared-ptr, unique-ptr и auto-ptr (это вообще отдельная тема в чем их отличие:))
В этом посте рассмотрим минимальную реализацию умного указателя. Его принцип заключается в том, что этот указатель мы выносим в отдельный объект типа SmartPointer, который хранит указатель.
По сути, этот объект за счёт устройства языка позволяет не заботиться об освобождении памяти. Ведь при выходе из области видимости функции у нашего объекта вызывается деструктор, который за нас освобождает память.
на 20-ой строчке переопределение оператора звездочка, чтобы обращаться к элементу
Так устроен самый примитивный смарт поинтер :)
Я кстати часто разбираю структуры, программы и т.п. Если хотите разобраться намного глубже в алгоритмах и теории можете подписаться на мой Telegram-канал.


