Деструктор должен быть виртуальным, если класс предназначен для использования в качестве базового, и предполагается полиморфное удаление через указатель (Base* ptr = new Derived; delete ptr;). Без виртуального деструктора деструкторы производных классов не будут вызваны, что приведет к утечке памяти.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
12%
std::promise позволяет передать значение или исключение из одного потока в другой
22%
std::promise может быть создан без std::future и использоваться отдельно
4%
std::future используется для получения результата из std::promise
63%
std::future и std::promise поддерживают работу только с типом void
Anonymous Quiz
5%
std::future может быть использован для получения результата из асинхронной задачи
22%
std::future поддерживает получение исключений, произошедших в асинхронной задаче
63%
std::future позволяет нескольким потокам одновременно получать результат из одной задачи
10%
std::future требует использования метода get() для получения результата
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊2
Anonymous Quiz
23%
std::align возвращает указатель на выровненную память и остаток памяти
16%
std::align позволяет выровнять память по заданному выравниванию
30%
std::align изменяет адрес начала памяти в случае необходимости
32%
std::align изменяет размер выделенной памяти для соблюдения выравнивания
Anonymous Quiz
13%
O(1)
5%
O(log n)
78%
O(n)
5%
O(n log n)
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
10%
std::thread может быть перемещен, но не скопирован
8%
std::thread может быть создан с функцией или лямбда-выражением
56%
std::thread может быть использован для синхронизации между потоками
25%
std::thread требует вызова метода detach() для освобождения ресурсов
Anonymous Quiz
16%
std::future::valid может быть использован для проверки, был ли результат получен
22%
std::future::valid возвращает true, если std::future содержит результат
34%
std::future::valid возвращает false, если std::future уже был перемещен
28%
std::future::valid может быть использован для проверки состояния std::future
Обёртки над обычными указателями, автоматически управляющие временем жизни объекта.
- std::unique_ptr — единственный владелец, нельзя копировать.
- std::shared_ptr — подсчёт ссылок, разделённое владение.
- std::weak_ptr — не влияет на счётчик shared_ptr, нужен для избежания циклов.
Плюсы:
- Безопасное управление памятью.
- Нет утечек при правильном использовании.
- Легче соблюдать RAII.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
20%
constexpr может быть использовано только с целочисленными типами
23%
constexpr используется для объявления констант, которые вычисляются во время выполнения
8%
constexpr переменные не могут быть инициализированы константными выражениями
49%
constexpr функции могут быть вычислены на этапе компиляции
Anonymous Quiz
36%
std::chrono::duration_cast может работать только с типами std::chrono::duration
22%
std::chrono::duration_cast используется для изменения типа длительности
33%
std::chrono::duration_cast может использоваться для преобразования времени в строковый формат
8%
std::chrono::duration_cast преобразует между различными единицами измерения времени
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
9%
std::chrono::steady_clock предоставляет монотонное время
6%
std::chrono::steady_clock подходит для измерения промежутков времени
44%
std::chrono::steady_clock не подвержен корректировкам времени
41%
std::chrono::steady_clock используется для получения времени по системным часам
Anonymous Quiz
12%
std::aligned_union поддерживает размещение объектов с произвольным выравниванием
23%
std::aligned_union является частью библиотеки
58%
std::aligned_union управляет временем жизни объектов, размещенных в нем
8%
std::aligned_union используется для создания буфера с нужным выравниванием
2. Исключения позволяют безопасно остановить создание объекта, если данные или ресурсы не были успешно инициализированы.
3. Это защищает от использования некорректно инициализированных объектов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
29%
std::atomic::fetch_or не поддерживает операции с типами данных, не являющимися целыми
31%
std::atomic::fetch_or выполняет атомарную операцию побитового ИЛИ
11%
std::atomic::fetch_or поддерживает флаги порядка памяти
29%
std::atomic::fetch_or возвращает предыдущее значение
💊1
Anonymous Quiz
6%
std::tuple является частью библиотеки
13%
std::tuple можно распаковывать с помощью std::tie
14%
std::tuple позволяет хранить несколько значений разных типов
67%
std::tuple поддерживает доступ к элементам по именам
Такую возможность называют ADL (Argument-Dependent Lookup) или Koenig Lookup. Компилятор автоматически ищет функцию в пространстве имен аргумента, если оно не указано явно.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
5%
Время компиляции увеличится
14%
Улучшается производительность во время выполнения
79%
Значения вычисляются на этапе компиляции
1%
Память освобождается автоматически
💊4