Если у базового класса есть хотя бы одна виртуальная функция, то у него создается одна таблица виртуальных функций (vtable). У производного класса также создается своя vtable, если он переопределяет виртуальные методы или добавляет новые.
- Если производный класс не добавляет новых виртуальных функций, он использует vtable родительского класса.
- Если переопределяет методы, создается отдельная vtable для производного класса.
Таким образом, в общем случае будет две таблицы vtable – по одной для каждого класса.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
16%
[[nodiscard]] может быть использован для указания на важность возвращаемого значения
12%
[[nodiscard]] является частью C++17
15%
[[nodiscard]] помечает функцию, чтобы предотвратить игнорирование возвращаемого значения
56%
[[nodiscard]] может применяться к конструкторам и деструкторам
Anonymous Quiz
14%
wait используется для синхронизации с завершением дочернего процесса
18%
wait возвращает идентификатор завершенного дочернего процесса
37%
wait не возвращает код завершения дочернего процесса
31%
wait блокирует процесс до завершения дочернего процесса
👍1
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
10%
std::unique_ptr поддерживает перемещение и не поддерживает копирование
80%
std::unique_ptr может быть копирован для создания нового unique_ptr
1%
std::unique_ptr автоматически освобождает память при выходе из области видимости
9%
std::unique_ptr управляет единственным владельцем динамически выделенного объекта
Anonymous Quiz
38%
Шаблоны могут вызывать ошибки компиляции только при инициализации объектов
40%
Для использования шаблонов необходимо явно указать типы при создании объекта шаблона
14%
Шаблоны могут быть частично специализируемыми
9%
Концепции в C++20 позволяют ограничивать типы, которые могут быть использованы с шаблонами
💊2🔥1
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
14%
std::chrono предоставляет типы для работы с временем и продолжительностью
28%
std::chrono включает типы для работы с часовыми зонами
47%
std::chrono может использоваться только с встроенными типами данных времени
11%
std::chrono поддерживает конвертацию между различными единицами времени
Anonymous Quiz
16%
SetUp выполняется перед каждым тестом и используется для подготовки данных
19%
SetUp и TearDown могут быть переопределены в производных классах для настройки тестов
44%
Методы SetUp и TearDown могут быть объявлены как статические
22%
TearDown выполняется после каждого теста и используется для очистки ресурсов
👍1
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
10%
Метапрограммирование позволяет выполнять вычисления на этапе компиляции
16%
Метапрограммирование может быть использовано для создания типов и функций на этапе компиляции
68%
Метапрограммирование требует использования только встроенных типов данных
6%
Метапрограммирование может использовать шаблоны для генерации кода
Anonymous Quiz
38%
std::transform_reduce всегда требует явного указания оператора преобразования
24%
std::transform_reduce является частью библиотеки
14%
std::transform_reduce поддерживает параллельное выполнение
24%
std::transform_reduce выполняет комбинацию операций преобразования и редукции
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
28%
std::mutex не предоставляет возможность рекурсивного захвата
17%
std::mutex используется для синхронизации доступа к общим данным
45%
std::mutex поддерживает блокировку на основе других потоков
10%
std::mutex может быть использован для защиты критических секций
🔥1
Anonymous Quiz
6%
std::aligned_storage используется для создания буферов с заданным выравниванием и размером
30%
std::aligned_storage позволяет размещать объекты с произвольным выравниванием
3%
std::aligned_storage является частью библиотеки
61%
std::aligned_storage управляет временем жизни объектов, которые в нем размещены
1. static_cast: Для явного и безопасного приведения типов, известных на этапе компиляции.
2. dynamic_cast: Для приведения указателей или ссылок в иерархии классов с проверкой типов во время выполнения.
3. const_cast: Для снятия или добавления const и volatile квалификаторов.
4. reinterpret_cast: Для низкоуровневого преобразования указателей или других типов без проверки безопасности.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
18%
Команда SUB используется для вычитания одного значения из другого
50%
Команда SUB не изменяет флаг переполнения (overflow flag)
6%
Команда SUB изменяет флаги состояния процессора, такие как флаг переноса и флаг нуля
26%
Команда SUB может быть использована для вычитания значений из регистра и памяти
Anonymous Quiz
29%
auto_ptr
44%
unique_ptr
25%
shared_ptr
2%
weak_ptr
💊17
1. Конструкторы не возвращают значения, поэтому исключения — единственный способ сообщить о неудачной инициализации.
2. Исключения интегрируются с механизмами управления памятью, автоматически освобождая частично инициализированные ресурсы.
3. Они делают код более выразительным, отделяя логику инициализации от обработки ошибок.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
7%
std::size_t гарантированно неотрицателен
77%
std::size_t является знаковым типом данных
2%
std::size_t обычно используется для работы с размерами массивов и размеров контейнеров
14%
std::size_t используется для представления размера объектов и индексов
Anonymous Quiz
14%
std::get может использоваться для извлечения элемента из std::tuple по типу
23%
std::get поддерживает получение значения из std::tuple, используя константные выражения
43%
std::get требует, чтобы типы элементов в std::tuple были уникальными
20%
std::get позволяет получить элемент из std::tuple по индексу
👍2