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

Mock - собеседование программиста: секция С++

Учебное мок-собеседование по C++ с вопросами по языку и стандартной библиотеке, разбором ошибок и короткими задачами на чтение и написание кода.

Источник: Vladimir Balun - Programming

Открыть на YouTube

Таймлайн

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

Это мок-собеседование по C++, где интервьюер последовательно проверяет знания кандидата по const-указателям, умным указателям, контейнерам, ООП, исключениям и многопоточности. В практической части разбирают вывод кода с наследованием, устраняют race condition при работе с очередью и пишут упрощённый аналог shared_ptr. Интервьюер уточняет и исправляет ответы: например, обсуждает гарантию исключений при релокации vector, опасность исключений из деструктора и устройство control block у shared_ptr.

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

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

  • Повторить четыре сочетания const с указателями: отдельно константность указателя и объекта, на который он указывает.
  • Уметь объяснить unique_ptr, shared_ptr и weak_ptr: перемещение unique_ptr, счётчики сильных и слабых ссылок, циклические зависимости и границы потокобезопасности shared_ptr.
  • Подготовить сравнение vector и list по размещению данных, релокации, инвалидированию и асимптотике вставки, удаления и доступа по индексу.
  • Разобраться, почему move-конструктор и move-оператор, помеченные noexcept, важны для безопасной релокации элементов vector.
  • Отработать порядок вызова конструкторов и деструкторов в иерархии, необходимость виртуального деструктора при удалении через базовый указатель и особенности виртуальных вызовов в конструкторах и деструкторах.
  • Повторить исключения в конструкторах и деструкторах: объект считается созданным только после успешного завершения конструктора; исключение из noexcept-функции приводит к std::terminate.
  • Уметь находить race condition между front() и pop() очереди, объяснять deadlock и предлагать работу с локальной копией элемента после освобождения mutex.

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