Skip to main content

Наши вопросы по программированию на C/C++

Вопросы C/C++

Следующий блок вопросов это самые важные вопросы для кандидата на позицию C/C++ программиста. Вопросы поделены на две категории. Надеюсь в современном мире все в курсе, что такое C++14. Но на всякий случай, оставлю тут ссылку на wiki. Знание совсем новых плюсов не обязательно, но крайне рекомендуется. На мой взгляд если человек работает в какой-то области и не интересуется, что в ней происходит последние лет 5, то ничего хорошего в этом нет.

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

C/C++

  1. Зачем нужен stdafx.h? Что в него включать? Как это работает?
  2. Зачем нужен препроцессор, компилятор, ассемблер, linker?
  3. Что такое исключения? Как они работают?
  4. Для чего используется вызов throw без аргументов?
  5. Конструктор копирования, оператор присваивания. Когда они вызываются?
  6. Операторы преобразования static_cast, const_cast, reinterpret_cast, dynamic_cast, С-cast. Назначение и примеры использования.
  7. Друзья класса. Назначение и примеры применения.
  8. Что такое множественное наследование? Как оно работает и какие может создать проблемы?
  9. Виртуальные функции. Что такое vftable, vbtable и как это работает?
  10. Зачем нужен виртуальный деструктор?
  11. Какие конструкции С++ разрешается использовать в списке инициализации качестве инициализирующих выражений?
  12. Как запретить неявное преобразование типа, выполняемое конструктором инициализации?
  13. Как защитить объект от копирования?
  14. Что предпочтительней, наследование или инкапсуляция? В каких случаях и почему?
  15. Можно ли объявлять массив объектов? А массив классов?
  16. Паттеры проектирования – Singleton, Factory, Observer, Visitor. Остальные по желанию.
  17. Контейнеры в STL. Преимущества и недостатки.
  18. Итераторы и алгоритмы в STL.
  19. Специализация шаблонных классов и функций. Назначение и примеры применения. Частичная специализация шаблонных классов.
  20. Функторы.
  21. Аллокаторы и их применение.
  22. Лямбда-выражения.
  23. Умные указатели. Зачем нужны? Что такое владение?
  24. Многопоточность и примитивы синхронизации. Типы и устройство.
  25. Многопоточность и передача сообщений.
  26. Что такое IPC?

C++14

  1. Явное замещение виртуальных функций и финальность.
  2. Шаблоны с переменным числом аргументов.
  3. Статическая диагностика.
  4. constexpr-выражения.
  5. copy- и move-семантика.