Вы находитесь на странице: 1из 2

Примеры вопросов и заданий на собеседовании по С/С++

Теоретические вопросы:

1. Что такое конструктор, деструктор, конструктор по умолчанию, конструктор


копирования? Приведите примеры вызовов различных конструкторов.
2. Что представляет из себя явный конструктор? Что представляет из себя неявный
конструктор? Приведите примеры.
3. Опишите своими словами, что такое полиморфизм. Какими средствами он
представлен в языке С++.
4. Что представляют из себя виртуальные функции? Как их реализовать на С?
5. Какие нюансы в вызове виртуальных функций из конструктора и из деструктора?
6. Что из себя представляет бинарный поиск?
7. Что такое стек? Что понимают под понятием «раскрутка стека»?
8. Что такое рекурсия?
9. Что означает O(nlogn)? Приведите пример алгоритма.
10. Что из себя представляют паттерны проектирования? Приведите пример 2-3
паттернов.
11. Что такое автоматический указатель? Какие вы знаете реализации автоматического
указателя. Можно ли их использовать в стандартных контейнерах?
12. Что такое исключения? Приведите примеры использования. Каким образом можно
бросать и ловить исключения? Какой способ рекомендуется использовать?
13. Что такое абстрактный класс? Могут ли быть у абстрактного класса объекты
данных?
14. Можно ли виртуальную функцию вызвать не виртуально? Может ли виртуальная
функция быть inline?
15. Могут ли быть у абстрактного класса объекты данных?
16. Может ли у чисто виртуальной функции быть тело?
17. Что такое -interface-(здесь имеется в виду понятие в ООП)? Приведите пример.
18. Что такое безымянная конструкция?
19. Опишите понятие Exception Safety.
20. Опишите разницу между структурой в Си и структурой в C++.
21. Расскажите, почему необходимы виртуальные деструкторы.
22. Могут ли существовать виртуальные конструкторы?
23. Зачем нужны пространства имен (namespace)?
24. Опишите известные вам STL контейнеры, предпочтение использования (подсказка:
чем отличается вектор от листа и от мапы)
25. Разница между вектором и массивом?
26. Что такое потоки? Какие они бывают? Приведите примеры использования.
Стандартные потоки ввода/вывода.
27. Опишите понятия «передача по значению», «передача по указателю», «передача по
ссылке».
28. Что такое RTTI?

Дополнительная информация: cv@apriorit.com, http://www.apriorit.com 1


29. Что случится, если выделить память, используя “new”, и освободить ее, используя
“free”?
30. Есть что-то, что можно сделать в Си, но нельзя сделать в С++?
31. Почему оператор прединктрементации быстрее, чем оператор постинкрементации?
32. Приведите 2 примера оптимизации кода.
33. Что такое модификатор, модификаторы доступа?
34. Что такое повисший указатель (dangling pointer)?
35. Что такое инвариант?
36. Какие бывают итераторы? Приведите примеры.
37. Что из себя представляет перегрузка операторов?
38. В чем разница между оператором присваивания и конструктором копирования?
39. Какие бывают виды памяти? Приведите примеры.
40. Списки инициализации конструкторов, зачем они нужны.
41. Статические функции класса, примеры использования.
42. Назовите 4 метода привидения типов существующие в языке С++.

Примеры задач, которые задают на собеседовании (решаются без использования


компьютера, на доске):

1. Напишите программу, выводящие числа от 0 до 100 на экран.

2. Опишите интерфейс для класса string, приближенный к std::string. Реализуйте конструктор


по умолчанию, конструктор копирования, деструктор, операции вывода в поток,
прибавления и индексирования.

3. Опишите интерфейс для класса list содержащий в себе элементы типа int. Реализуйте
конструктор по умолчанию, конструктор копирования, деструктор, добавление элемента,
удаление элемента и операцию индексирования, вывода в поток

4. Напишите функцию, которая принимает буфер памяти и возвращает число long. Известно,
что передается некая структура и число, которое нужно извлечь, начинается с пятого байта.

Дополнительная информация: cv@apriorit.com, http://www.apriorit.com 2