Вернуться в видеотеку

Мок-собеседование по C++: реализация shared_ptr

Кандидат реализует упрощённый shared_ptr и обсуждает счётчик ссылок, конструкторы, деструктор и операторы присваивания. Интервьюер находит ошибки с инициализацией, утечками памяти и самоприсваиванием, затем даёт обратную связь.

Источник: it-interview

Открыть на YouTube

Таймлайн

Коротко о видео

В этой записи проходит мок-собеседование по C++ с задачей реализовать упрощённый shared_ptr. Сначала кандидат объясняет идею совместного владения объектом и счётчика ссылок, после чего начинает писать класс. Интервьюер последовательно разбирает конструктор по умолчанию, конструктор с параметром, деструктор, копирование и присваивание. Он просит кандидата проверить, что происходит с неинициализированным указателем на стеке, лишними выделениями памяти, удалением ресурса и присваиванием объекта самому себе. Отдельно обсуждаются списки инициализации, swap-идиома и перемещающие операции. В финале интервьюер отмечает, что кандидат знает основные механизмы, но пропускает крайние случаи, которые ведут к некорректному поведению или утечкам.

Затронутые темы

Что взять на заметку

  • Счётчик ссылок должен быть отдельным для каждого управляемого объекта, поэтому статическая переменная для него не подходит.
  • Указатели и счётчики в конструкторе нужно инициализировать, чтобы не работать с невалидной памятью.
  • Оператор присваивания обязан корректно обрабатывать самоприсваивание и освобождение прежнего ресурса.
  • Реализация владеющего указателя требует согласованной работы конструктора копирования, деструктора и операций перемещения.
  • Тесты крайних случаев помогают выявить утечки и обращения к неинициализированной памяти.

Рекомендуем посмотреть