Рассчитай точную стоимость своей работы и получи промокод на скидку 200 ₽
Найди эксперта для помощи в учебе
Найти эксперта
+2
Создан заказ №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
20 дней
Заказчик принял работу без использования гарантии
12 марта 2017
Заказ завершен, заказчик получил финальный файл с работой
5
Заказ выполнил
authorAlexander
5
скачать
UniquePtr.jpg
2018-10-12 19:40
Последний отзыв студента о бирже Автор24
Общая оценка
5
Положительно
Автор замечательно выполнил работу на отлично и в срок! Большое спасибо! Рекомендую!

Хочешь такую же работу?

Оставляя свои контактные данные и нажимая «Создать задание», я соглашаюсь пройти процедуру регистрации на Платформе, принимаю условия Пользовательского соглашения и Политики конфиденциальности в целях заключения соглашения.
Хочешь написать работу самостоятельно?
Используй нейросеть
Мы создали собственный искусственный интеллект,
чтобы помочь тебе с учебой за пару минут 👇
Использовать нейросеть
Тебя также могут заинтересовать
Создание виртуальной машины на языке C++ по требованию
Контрольная работа
Программирование
Стоимость:
300 ₽
Практика «Два прямоугольника» на с#
Решение задач
Программирование
Стоимость:
150 ₽
Курсовая работа по "Основам программирования" на языке C#
Курсовая работа
Программирование
Стоимость:
700 ₽
Решения краевой задачи уравнения теплопроводности.
Контрольная работа
Программирование
Стоимость:
300 ₽
Разработать UML-диаграмму с подробным объяснением
Другое
Программирование
Стоимость:
300 ₽
Jason(AgentSpeak) разработать мультиагентную систему по готовому заданию
Лабораторная работа
Программирование
Стоимость:
300 ₽
Создание сайта. Тема сайта - Речные круизы.
Курсовая работа
Программирование
Стоимость:
700 ₽
Тема курсовой работы: Структурная организация IP
Курсовая работа
Программирование
Стоимость:
700 ₽
Интеграция IoT в многоуровневую структуру корпоративной сети
Курсовая работа
Программирование
Стоимость:
700 ₽
задание по программированию С# (до 07.10.2021)
Решение задач
Программирование
Стоимость:
150 ₽
Задача по ТЕОРИЯ ИГР И ПРИНЯТИЕ РЕШЕНИЙ В ЗАДАЧАХ УПРАВЛЕНИЯ
Решение задач
Программирование
Стоимость:
150 ₽
Программирование на луа, создание интерпретатора луа
Решение задач
Программирование
Стоимость:
150 ₽
Ввести в Memo вещественные числа. Создать из них массив. Переставить
Решение задач
Программирование
Стоимость:
150 ₽
Решение задач по программированию
Решение задач
Программирование
Стоимость:
150 ₽
Задача по программированию
Решение задач
Программирование
Стоимость:
150 ₽
Создать простую галерею изображений, используя языки HTML5 и CSS3.
Решение задач
Программирование
Стоимость:
150 ₽
Работа с видеопамятью на ассемблере (FASM)
Решение задач
Программирование
Стоимость:
150 ₽
Решение задачи на языке Excel VBA (Visual Basic, Visual Basic for Applications)
Решение задач
Программирование
Стоимость:
150 ₽
Динамич программирование
Решение задач
Программирование
Стоимость:
150 ₽
Читай полезные статьи в нашем
Базовые конструкции алгоритмов. Типы данных: простые и структурированные
Метод структурной алгоритмизации является одним из системных методов разработки алгоритмов. Он основан на визуальном представлении алгоритмов в виде последовательностей управляющих структурных фрагментов.
Каждый алгоритм состоит из элементарных шагов, которые можно объединить в определенные алгоритмические конструкции: линейную (последовательную), разветвляющуюся, циклическую .
С помощью линейных а...
подробнее
Выражения в Turbo Pascal V.7.0
Выражения определяют правила вычисления некоторых значений. Выражение состоит из операндов и оператора. Операнды выражения представлены константами и (или) переменными. Операторы, как правило, располагаются между операндами и обозначают действия, которые выполняются над операндами. Приведем в таблице операторы языка Turbo Pascal и математические действия, которые они обозначают.

Когда записываем вы...
подробнее
Организация ветвлений в Turbo Pfscal V.7.0

Ветвление в среде Turbo Pascal может осуществляться двумя способами: условным оператором и оператором выбора варианта. Применяя эти операторы, можно проверить выполнение условия ветвления и выбрать один вариант дальнейшего вычисления.
Этот оператор выбирает одно из двух направлений выполнения действий, зависящее от некоторого условия, отметим, что одна из ветвей может отсутствовать. Условие выбора...
подробнее
Управление режимом отображения детали в Компас-3D
В системе Компас-3D LT используются несколько типов отображения деталей:
Для выбора типа отображения сначала нужно вызвать команду Отображение из меню Вид, а затем выбрать необходимый вариант. Другим способом вызова команды является использование кнопок панели Вид.
Рассмотрим типы отображения деталей.
Для отображения детали в виде каркаса вызовем команду Отображение, находящуюся в меню Вид. Выберем...
подробнее
Базовые конструкции алгоритмов. Типы данных: простые и структурированные
Метод структурной алгоритмизации является одним из системных методов разработки алгоритмов. Он основан на визуальном представлении алгоритмов в виде последовательностей управляющих структурных фрагментов.
Каждый алгоритм состоит из элементарных шагов, которые можно объединить в определенные алгоритмические конструкции: линейную (последовательную), разветвляющуюся, циклическую .
С помощью линейных а...
подробнее
Выражения в Turbo Pascal V.7.0
Выражения определяют правила вычисления некоторых значений. Выражение состоит из операндов и оператора. Операнды выражения представлены константами и (или) переменными. Операторы, как правило, располагаются между операндами и обозначают действия, которые выполняются над операндами. Приведем в таблице операторы языка Turbo Pascal и математические действия, которые они обозначают.

Когда записываем вы...
подробнее
Организация ветвлений в Turbo Pfscal V.7.0

Ветвление в среде Turbo Pascal может осуществляться двумя способами: условным оператором и оператором выбора варианта. Применяя эти операторы, можно проверить выполнение условия ветвления и выбрать один вариант дальнейшего вычисления.
Этот оператор выбирает одно из двух направлений выполнения действий, зависящее от некоторого условия, отметим, что одна из ветвей может отсутствовать. Условие выбора...
подробнее
Управление режимом отображения детали в Компас-3D
В системе Компас-3D LT используются несколько типов отображения деталей:
Для выбора типа отображения сначала нужно вызвать команду Отображение из меню Вид, а затем выбрать необходимый вариант. Другим способом вызова команды является использование кнопок панели Вид.
Рассмотрим типы отображения деталей.
Для отображения детали в виде каркаса вызовем команду Отображение, находящуюся в меню Вид. Выберем...
подробнее
Теперь вам доступен полный отрывок из работы
Также на e-mail вы получите информацию о подробном расчете стоимости аналогичной работы