C/C++ | Тесты
1.95K subscribers
27 photos
447 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Вопросы собесов t.iss.one/+BTbqlW1VbIFmYmVi
Задачи t.iss.one/+9WeVk7cGswkzNTIy
Вакансии t.iss.one/+za2mJYs4riAzMzFi
Download Telegram
🤔 В чем особенность выброса исключений в конструкторе и деструкторе?

Если исключение выбрасывается в конструкторе, объект считается несозданным, и деструктор для него не вызывается. Если исключение выбрасывается в деструкторе, оно может привести к завершению программы, если другое исключение уже активно.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой контейнер используется в priority_queue?

priority_queue в C++ обычно реализован на базе std::vector с использованием кучи (heap) для управления приоритетами.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
🤔 Какие есть уровни exception гарантий?

1. No-throw Guarantee: метод или операция не выбрасывает исключений. Пример: деструкторы.
2. Strong Guarantee: при выбросе исключения состояние объекта или программы остаётся неизменным.
3. Basic Guarantee: состояние объекта остаётся корректным, но изменения могут быть частичными.
4. No Guarantee: программа может оказаться в некорректном состоянии при исключении.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🤔 Зачем нужен виртуальный деструктор?

Виртуальный деструктор необходим, когда класс предполагает полиморфное использование, то есть когда объекты базового класса могут быть удалены через указатель на производный класс. Без виртуального деструктора вызов `delete` на указатель базового типа приведет к вызову только деструктора базового класса, что может вызвать утечку памяти для производных классов. Виртуальный деструктор гарантирует, что будет вызван правильный деструктор для производного класса, обеспечивая корректное освобождение всех ресурсов.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Как работает new?

Оператор new в C++ выделяет память из кучи (heap) для хранения объекта и возвращает указатель на эту область памяти. Помимо выделения памяти, new также вызывает конструктор объекта, если он определен. В случае, если не хватает памяти для выделения, new выбрасывает исключение std::bad_alloc. Для освобождения памяти, выделенной через new, необходимо использовать оператор delete.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
🤔 Какие есть lock_guard в стандартной библиотеке С++?

В стандартной библиотеке C++ есть std::lock_guard и std::unique_lock для управления мьютексами. std::lock_guard обеспечивает автоматическое блокирование мьютекса при создании и освобождение при выходе из области видимости. std::unique_lock более гибок, позволяя управлять временем блокировки и возможностью передачи мьютекса между функциями.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊3
🤔 Какой оператор в C++ используется для принудительного преобразования типов?
Anonymous Quiz
9%
convert
10%
cast
3%
change
78%
static_cast<>
🤔 Какие есть типы мьютексов?

1. std::mutex: базовый мьютекс для синхронизации.
2. std::recursive_mutex: позволяет одному потоку многократно блокировать мьютекс.
3. std::timed_mutex: поддерживает блокировку с тайм-аутом.
4. std::shared_mutex: позволяет совместный доступ для чтения и эксклюзивный доступ для записи.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM