Выбор ответа Junior Правило 0/3/5 спрашивают часто обновлено
Правило трёх
Вопрос
Какие три функции входят в правило трёх?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Деструктор, копирующий конструктор, копирующее присваивание. Если классу нужна своя реализация одной из них, значит, он вручную управляет ресурсом, и нужны все три. - Конструктор по умолчанию к правилу отношения не имеет. - Перемещающие операции добавляет правило пяти. - swap полезен для реализации…
Варианты ответа
- Конструктор, деструктор, оператор присваивания
- Копирующий конструктор, перемещающий конструктор, деструктор
- Деструктор, копирующий конструктор, копирующее присваиваниеправильный ответ
- Конструктор по умолчанию, копирующий конструктор, swap
Разбор
Если классу нужна своя реализация одной из них, значит, он вручную управляет ресурсом, и нужны все три.
- Конструктор по умолчанию к правилу отношения не имеет.
- Перемещающие операции добавляет правило пяти.
swapполезен для реализации присваивания, но не входит в правило.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Правило 0/3/5»
- Длинная арифметика: класс BigUint и факториал
- Класс матрицы 2×2 и быстрое возведение в степень
- Что даёт copy-and-swap
- Как написать оператор присваивания
- Куда пропал конструктор по умолчанию
- Пустой деструктор и перемещение
- Когда не генерируется перемещение
- Что объявили и что сгенерирует компилятор