Middle Flashcards
1.Які курси пройшли чи книги прочитали за цей рік? Чого навчились?
””
2.Що подобається та не подобається в С++? Чого бракує?
””
3.Що цікавого знайшли в нових стандартах С++17, С++20 (конкретні фічі)?
””
4.Розкажіть про фічі, які з’явилися в різних версіях мови.
””
5.Розкажіть про модель пам’яті, яка з’явилася в С++11 стандарті.
””
6.Що таке серіалізація? Які бібліотеки знаєте?
””
7.Які знаєте патерни проєктування?
””
8.Що таке операційна система? Які існують типи за призначенням?
””
9.Назвіть основні складові та принципи роботи ОС Linux як приклад системи загального призначення.
””
10.Що таке SFINAE та PIMPL?
””
11.Назвіть породжувальні, структурні та поведінкові патерни програмування та наведіть приклади їх використання.
””
12.Розкажіть про системи автоматизації білд-процесу.
””
13.Яка різниця між статичною і динамічною бібліотеками?
””
14.Яка різниця між виконавчим файлом і динамічною бібліотекою?
””
15.Що таке DLL hell?
””
16.Що таке прапорці компіляції (fPIC)?
””
17.У чому різниця між дебажною та релізною збіркою?
””
18.Що потрібно для використання сторонньої бібліотеки?
””
19.Що таке internal linkage?
””
20.Що буде, якщо двічі викликати free?
””
21.Як відбувається виклик функції?
””
22.Як відбувається передача параметрів у функцію?
””
23.Як опрацьовується константність змінних?
””
24.Що означає ключове слово inline?
””
25.Для чого використовують вирівнювання, чи можна його контролювати?
””
26.Розкажіть про бітові поля.
””
27.Для чого потрібен extern «C»?
””
28.Що буде, якщо у двох файлах зробити функцію з однаковим ім’ям і параметрами? На якому етапі виникне помилка?
””
29.Як експортувати/імпортувати функції з динамічної бібліотеки?
””
30.Яка різниця між С-style приведенням типів і C++ приведенням?
””
31.Що таке явне та неявне приведення типів у С++? Навіщо робити explicit-конструктор?
””
32.Що таке Uniform initialization? Aggregate initialization?
””
33.Що таке Reference to temporary object? Як продовжити час життя тимчасового об’єкта?
””
34.Що таке делегуючий конструктор?
””
35.Що таке список ініціалізації?
””
36.Який порядок ініціалізації полів класу? Що трапиться, якщо конструктор ініціалізує поля в іншому порядку?
””
37.Що трапиться, якщо ініціалізувати поле іншим полем?
””
38.Що таке copy elision? Скільки разів буде викликано конструктор/деструктор в об’єкта, який повертають за значенням?
””
39.Що таке move-семантика?
””
40.В яких випадках не буде згенеровано конструктор копіювання?
””
41.Чим відрізняється конструктор копіювання від оператора присвоєння?
””
42.За яких умов в конструкторі можна викинути exception?
””
43.Що таке конструктор за замовчуванням? Для чого потрібні default та delete?
””
44.Чим відрізняється інтерфейс від абстрактного класу?
””
45.Які види поліморфізму в С++?
””
46.Як реалізовне успадкування в більшості компіляторів?
””
47.Множинне успадкування: за та проти?
””
48.Віртуальне спадкування та порядок конструювання?
””
49.Навіщо використовувати override?
””
50.Які є правила виведення типу при використанні auto? В яких випадках auto може призвести до небажаного копіювання об’єкта?
””
51.Розкажіть про всі можливі способи використання ключового слова static в С++? Що таке static initialization order fiasco?
””
52.Що робить виклик throw; в блоку catch?
””
53.Чим відрізняється constexpr від const?
””
54.Що таке const correctness?
””
55.В якому випадку можна використовувати const_cast?
””
56.Що таке ключове слово mutable і коли його потрібно використовувати?
””
57.Що таке ключове слово friend і коли його потрібно використовувати?
””
58.Розкажіть про лямбда-вирази у С++ і доступ до змінних у зовнішній області видимості, захоплення this у лямбду та час життя лямбди та захоплених змінних?
””
59.Що таке функтор? Напишіть приклад.
””
60.Що таке спеціалізація шаблону?
””
61.Що таке dynamic_cast та run-time type identification?
””
62.Що таке exception? Як кинути та зловити?
””
63.Що буде, якщо кинути exception з конструктора? А з деструктора?
””
64.Що буде, якщо не зловити exception?
””
65.Що станеться, якщо exception вийде за межі блоку noexcept функції?
””
66.Для чого можна використовувати приватне успадкування?
””
67.Що таке контракт функції?
””
68.Що таке vptr і vtable?
””
69.Де міститься vptr?
””
70.Де міститься vtable?
””
71.Яка різниця між overload and override?
””
72.Як компілятор розрізняє члени класу та звичайні змінні в функціях?
””
73.Навіщо використовують exceptions?
””
74.Що таке блоки try-throw-catch?
””
75.Розкажіть про логіку catch-блоків.
””
76.Що таке move constructor?
””
77.У чому різниця між константним методом і неконстантним?
””
78.Що таке О-нотація та як визначити складність будь-якого алгоритму?
””
79.Що таке таблиця віртуальних методів?
””
80.Які функції класу автоматично генерує компілятор, якщо їх не визначити?
””
81.Що таке вирівнювання даних?
””
82.Що таке exception?
””
83.Які є стандартні контейнери та на основі яких структур вони побудовані?
””
84.Що таке Undefined behavior? Наведіть приклади.
””
85.Як визначити, що в програмі є memory leak?
””
86.Для чого потрібен std::make_shared? Чим він кращий за створення std::shared_ptr через конструктор?
””
87.Що буде, якщо виділити один обсяг пам’яті, а записати більше?
””
88.Що таке переповнення stack?
””
89.Навіщо потрібні патерни? Які типи патернів розрізняють?
””
90.Недоліки патерну Singleton? Коли він доречний?
””
91.Переваги та недоліки PIMPL?
””
92.У чому різниця між патерн-фабрикою та фабричним методом? Коли використовувати який з них?
””
93.Що таке патерн Observer?
””
94.Як контролювати стан програми? Машину станів? Патерн стан?
””
95.Що таке патерн Visitor?
””
96.Які є правила виведення типу в шаблоні?
””
97.Чим відрізняється using від typedef?
””
98.Скільки пам’яті займає довільна структура? Що таке вирівнювання об’єкта?
””
99.Чому порожня структура займає 1 байт? Яка мінімальна одиниця адресування у С++?
””
100.Що таке SOLID? Що означає кожен з цих принципів?
””
101.Розкажіть про патерни проєктування.
””
102.Що таке Dependency Injection? Наведіть приклад.
””
103.Які переваги та недоліки функціонального підходу?
””
104.Що таке принцип RAII?
””
105.Що таке принцип DRY?
””
106.Що таке принцип KISS?
””
107.Які переваги композиції перед успадкуванням?
””
108.Які алгоритми з STL використовували? Яких не вистачає?
””
109.Якими особливостями має володіти клас, щоб він був ітератором?
””
110.Які бувають ітератори?
””
111.Розкажіть про інвалідацію ітераторів.
””
112.Як оптимізувати видалення елемента з середини вектора?
””
113.Як реалізований vector?
””
114.Як реалізований list?
””
115.Як розширити STL-контейнери?
””
116.Які є алгоритми в STL?
””
117.В чому різниця між vector, deque, list, set e STL?
””
118.Коли треба використовувати map? Коли — unordered_map? Яка складність пошуку і вставки в цих контейнерах?
””
119.Як перевірити, чи є в контейнері елементи? Чому виклик container.size() є поганою практикою?
””
120.Що таке exception safety guarantee? Яку exception safety guarantee мають STL-контейнери?
””
121.Розкажіть про типи розумних вказівників і підрахунок посилань у них?
””
122.Чи є С++ thread-safe?
””
123.У чому різниця між багатопотоковістю та асинхронністю?
””
124.Що таке багатопотоковість? Яку функціональність надає С++ для розробки багатопотокових застосунків? Які основні проблеми багатопотокових застосунків?
””
125.Як передати інформацію між кількома процесами?
””
126.Як синхронізувати між собою кілька процесів?
””
127.Які є особливості роботи з shared memory?
””
128.Як працює spinlock?
””
129.Які ви знаєте особливості використання recursive mutex?
””
130.Розкажіть про read-write mutex.
””
131.Що таке race-condition? Взаємне блокування? Що таке критична секція?
””
132.Які уникнути стану гонитви?
””
133.Чим відрізняється м’ютекс від семафора?
””
134.Які примітиви синхронізації реалізовані в C++? Переваги lock_guard?
””
135.Що трапиться, якщо exception вийде за межі потоку? Які інструменти є для безпечної асинхронності в С++?
””
136.Чим відрізняється std::launch::async від std::launch::deferred?
””
137.Що таке атомарна операція? std::atomic?
””
138.Як працювати з std::conditional_variable?
””
139.Як створити потік за допомогою std::thread?
””
140.На скільки потоків найкраще розбити задачу? Від чого це залежить?
””
141.Як працювати з std::async?
””
142.Thread-safe гарантії контейнерів в С++? Чому недолік інтерфейсу front() + pop_fornt()?
””
143.Що таке TCP handshake?
””
144.Яка різниця між TCP та UDP?
””
145.Розкажіть про протоколи верхнього рівня.
””
146.Яка різниця між HTTP та HTTPS?
””
147.Розкажіть про SSL/TLS handshake.
””
148.Розкажіть про процеси CI.
””
149.Як відредагувати коміт?
””
150.Розкажіть про інтерактивний rebase.
””
151.Які можуть бути способи дебагінгу коду?
””
152.Для чого потрібні Unit test? Чим відрізняється від Functional Test?
””
153.Як тестувати код? Який використовуєте фреймворк?
””
154.Які бібліотеки знаєте для написання тестів?
””
155.Що таке mock?
””
156.Скільки тестів потрібно написати на одну функцію?
””
157.Що таке побічний ефект, ідемпотентність і чисті функції?
””
158.Що таке контейнеризація і в чому переваги та недоліки? Що таке Docker чи інший інструмент контейнеризації?
””
159.Що таке CI/CD і які переваги приносить для розробника?
””
160.Які принципи ітеративних методологій?
””
161.Які переваги та недоліки code-convention?
””