Создан заказ №1817896
11 марта 2017
UniquePtr
Как заказчик описал требования к работе:
Напишите свою упрощённую реализацию класса std::unique_ptr.
Подробную спецификацию стандартного std::unique_ptr можно посмотреть на http://en.cppreference.com/w/cpp/memory/unique_ptr. В этой задаче вам не нужно делать специализацию для массива и не нужно предусматривать свой Deleter.
Назовите ваш кл
асс UniquePtr. У класса должен быть один шаблонный параметр T - тип элемента, указатель на который будет храниться внутри.
Напишите следующие функции в классе:
Конструктор по умолчанию, создающий пустой умный указатель.
Конструктор, принимающий T * и захватывающий владение этой динамической памятью.
Конструктор перемещения, получающий на вход rvalue-ссылку на другой UniquePtr и отбирающий у него владение ресурсом.
Оператор присваивания, получающий на вход nullptr (тип - std::nullptr_t, определенный в заголовочном файле cstddef). В результате умный указатель должен стать пустым.
Move-оператор присваивания, получающий на вход rvalue-ссылку на другой UniquePtr.
Деструктор.
Константный и неконстантный оператор *.
Оператор ->.
Функцию T * release(), отменяющую владение объектом и возвращающую хранящийся внутри указатель.
Функцию void reset(T * ptr), после выполнения которой умный указатель должен захватить ptr.
Функцию void swap(UniquePtr& other), обменивающуюся содержимым с другим умным указателем.
Функцию T * get() const, возвращающую указатель.
explicit operator bool() const, позволяющий определить, не пуст ли умный указатель.
В вашем классе должны быть запрещены конструктор копирования и обычный оператор присваивания. Пометьте все подходящие функции тегом noexcept (чтобы подчеркнуть, что они не должны генерировать исключений
подробнее
Заказчик
заплатил
заплатил
20 ₽
Заказчик не использовал рассрочку
Гарантия сервиса
Автор24
Автор24
20 дней
Заказчик принял работу без использования гарантии
12 марта 2017
Заказ завершен, заказчик получил финальный файл с работой
5
UniquePtr.jpg
2018-10-12 19:40
Последний отзыв студента о бирже Автор24
Общая оценка
5
Положительно
Автор замечательно выполнил работу на отлично и в срок! Большое спасибо! Рекомендую!