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

Собеседование Junior C++

Запись тренировочного собеседования по C++ для junior-разработчика с вопросами по языку, памяти, STL и небольшими практическими задачами. Завершается авторским техническим фидбэком по ответам.

Источник: Ambushed Raccoon

Открыть на YouTube

Таймлайн

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

Тренировочное собеседование Максима на позицию Junior C++ Developer: сначала обсуждают его опыт с Qt, QML и учебными проектами, затем проводят серию теоретических и практических вопросов. Основные темы — порядок конструирования при наследовании, этапы сборки, препроцессор, управление ресурсами, умные указатели, STL-контейнеры и задачи со связным списком. В конце автор отдельно разбирает ответы, отмечая важные для подготовки пробелы и удачные решения задач.

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

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

  • Повторите порядок создания объекта при множественном наследовании: сначала базовые классы в порядке объявления, затем поля в порядке объявления, затем тело конструктора производного класса; разрушение идёт в обратном порядке.
  • Уметь объяснить цепочку сборки C++-проекта: препроцессирование директив, компиляция единиц трансляции в объектные файлы и линковка в исполняемый файл.
  • Ключевое слово explicit предотвращает неявные преобразования через подходящие конструкторы; в макросах параметры и выражение-результат обычно оборачивают в скобки, чтобы текстовая подстановка не меняла приоритет операций.
  • Для взаимных указателей между классами достаточно предварительных объявлений классов; полное определение потребуется там, где нужен размер типа или доступ к его членам.
  • При удалении объекта производного класса через указатель на базовый класс базовый деструктор должен быть virtual; виртуальных конструкторов в C++ нет.
  • Для исключительной безопасности владение ресурсами стоит передавать RAII-объектам и умным указателям: unique_ptr выражает единоличное владение, shared_ptr — разделяемое, weak_ptr не увеличивает счётчик ссылок и помогает разрывать циклы.
  • Подготовьте типовые задачи по структурам данных: удаление узла односвязного списка при доступе только к этому узлу, причины перераспределений std::vector и требования сравнения для ключей std::set/map.

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