当前位置: 首页 > news >正文

【C++】手动实现nique_ptr智能指针

1、自己实现封装了一个智能指针,并且使用了模板

目录

代码实现:

输出结果如下:


代码实现:

#include <iostream>using namespace std;template <typename T>
class UniquePtr
{
private:T *ptr;public://默认构造函数UniquePtr():ptr(nullptr){}//构造函数explicit UniquePtr(T *p):ptr(p){}//析构函数~UniquePtr(){delete ptr;}//禁止拷贝构造函数UniquePtr(const UniquePtr&) = delete;//禁止拷贝赋值运算符UniquePtr &operator=(const UniquePtr&) = delete;//移动构造函数UniquePtr(UniquePtr &&other)noexcept:ptr(other.ptr){other.ptr = nullptr;}//重载*操作符T& operator*()const{return *ptr;}//重载->操作符T& operator->()const{return *ptr;}//移动赋值预算符UniquePtr &operator=(UniquePtr &&other)noexcept{if(this != &other){delete ptr;ptr = other.ptr;other.ptr = nullptr;}return *this;}};int main()
{UniquePtr<int> unique(new int(10));UniquePtr<int> unique1 = move(unique);//cout<<*unique<<endl;cout<<*unique1<<endl;UniquePtr<int> unique2;unique2 = move(unique1);cout<<*unique2<<endl;return 0;
}

输出结果如下:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 解决AbortController中断请求无法再次请求
  • 招聘网站项目
  • Docker in Docker 实践 on mac
  • 跨越技术壁垒:EasyCVR为何选择支持FMP4格式,重塑视频汇聚平台标准
  • Jenkins+docker+springboot 一键自动部署项目步骤
  • docker-mysql容器数据卷挂载
  • 大端模式和小端模式
  • 对话万兴科技副总裁朱伟:2024年将迎来AI视频年
  • centos安装docker并配置加速器
  • LeetCode376 摆动序列
  • 《酒饮真经》第二部——劝酒十五式
  • 记录一下idea的一些使用技巧和遇到的异常(持续更新)
  • 199页Word智慧水务平台建设方案
  • 如何确定 npm 依赖需要的 Node.js 版本?
  • 黑马点评8——好友关注-SortedSet
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Apache Pulsar 2.1 重磅发布
  • Gradle 5.0 正式版发布
  • JS函数式编程 数组部分风格 ES6版
  • Linux后台研发超实用命令总结
  • maya建模与骨骼动画快速实现人工鱼
  • MQ框架的比较
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • PAT A1120
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • SOFAMosn配置模型
  • 关于Java中分层中遇到的一些问题
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 模型微调
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何使用 JavaScript 解析 URL
  • 实战|智能家居行业移动应用性能分析
  • 使用 QuickBI 搭建酷炫可视化分析
  • 学习笔记:对象,原型和继承(1)
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 找一份好的前端工作,起点很重要
  • 正则与JS中的正则
  • MyCAT水平分库
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ​业务双活的数据切换思路设计(下)
  • # SpringBoot 如何让指定的Bean先加载
  • (1)(1.13) SiK无线电高级配置(五)
  • (a /b)*c的值
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (九)One-Wire总线-DS18B20
  • (南京观海微电子)——COF介绍
  • (译) 函数式 JS #1:简介
  • ******IT公司面试题汇总+优秀技术博客汇总