Практическая работа по реализации Правила пяти (Rule of Five) и семантики перемещения.
- Реализован класс
Buffer, управляющий сырым массивомint*. - Написаны все 5 методов:
- Деструктор
- Конструктор копирования (глубокое копирование)
- Оператор копирующего присваивания (с проверкой на самоприсваивание)
- Конструктор перемещения (
noexcept) - Оператор перемещающего присваивания (
noexcept)
- В
main.cppпродемонстрировано, что приstd::moveисходный объект обнуляется (nullptr), а данные переходят без копирования.
g++ -std=c++20 main.cpp Buffer.cpp -o demo
./demo