/
Puzzman
/
basic_programming
Обзор
Документация
Войти
/
Puzzman
/
basic_programming
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
cppl_homework_10_03/uniquePtr.h
51 строка
914 B
Puzzanis
homework 10_3 added
30 ноя 2024, 12:30
30 ноя 2024, 12:30
727b9a5
Код
Авторство
О чём код?
#pragma once #include<iostream> template<class T> class uniquePtr { private: T* ptr_ = nullptr; public: uniquePtr() = default; explicit uniquePtr(T* ptr): ptr_(ptr) {}; uniquePtr(uniquePtr&& second) noexcept : ptr_(second.ptr_) { second.ptr_ = nullptr; } ~uniquePtr() { delete ptr_; std::cout << "destructor called\n"; }; //Перегружен оператор * для получения объекта T& operator*() const { return *ptr_; } T* operator->() const { return ptr_; } //Запрещен конструктор копирования uniquePtr(const uniquePtr&) = delete; //Запрещен оператор присваивания T& operator= (const T& second) = delete; //освобождает владение и возвращает сырой указатель T* release() noexcept { T* _tmp = ptr_; ptr_ = nullptr; return _tmp; } };