UE TSharedPtr

文章目录

  • 概述
    • TSharedPtr
    • TSharedPtr包含2部分
  • 构造,析构,拷贝构造,移动构造
    • 构造
    • 拷贝构造
    • 移动构造
  • 小结

概述

之前写过一篇c++的智能指针的,这篇写下ue的。本质上来说是差不多的,可以简单看看。

TSharedPtr

如下图:
底层构成
这个就是一个类,2个参数,第二个参数支持线程安全。

TSharedPtr包含2部分

如下图:
在这里插入图片描述
TSharedPtr主要包含2个部分,一个是对应类模板的对象,另外一个是支持计数的。然后底层用c++的方式实现了,来看下;

如下图:
FSharedReferencer
要看具体的,还要往底层看;

如下图:
FReferenceControllerBase

再来看看具体的增加和减少计数器的位置,

如下图:
FReferenceControllerOps

构造,析构,拷贝构造,移动构造

写完计数器,开始写下边的了。也就是一个类最基本的那些了。放到TSharedPtr这个类模版里,如下:

构造

空构造

构造

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

拷贝构造

在这里插入图片描述

移动构造

在这里插入图片描述

当然,每个里边都有很多形式,不一一列举。只是举了几个例子,有兴趣,可以自己去看看。还有一些操作符,
如下图:
在这里插入图片描述
在这里插入图片描述

小结

看过这个,对于TSharedPtr,应该是知道怎么回事了。有时间再去看看TWeakPtr,TUniquePtr,一步一步来分析,看看到底有什么好玩的东西。OK,结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/381880.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分析性能提升40%,阿里云Hologres流量场景最佳实践

在互联网和移动分析时代,流量数据成为了企业洞察用户行为、优化产品决策和提升运营效率的关键资源。流量数据主要来源于用户在使用APP、小程序或访问网站等媒介平台时产生的各种操作行为,如点击、浏览、注册、下单等。这些行为数据通过数据埋点技术被采集…

人工智能与机器学习原理精解【3】

文章目录 泰勒级数逼近基础一阶导数和二阶导数的几何意义一阶导数的几何意义二阶导数的几何意义应用示例 导数与微分的区别1. 定义与本质2. 几何意义3. 表达式与关系4. 应用场景 可微函数定义几何意义性质例子 导数导数的定义导数的计算导数的几何意义导数函数的图像一、常见导…

使用Redis的SETNX命令实现分布式锁

什么是分布式锁 分布式锁是一种用于在分布式系统中控制多个节点对共享资源进行访问的机制。在分布式系统中,由于多个节点可能同时访问和修改同一个资源,因此需要一种方法来确保在任意时刻只有一个节点能够对资源进行操作,以避免数据不一致或…

SpringMVC源码深度解析(中)

接上一遍博客《SpringMVC源码深度解析(上)》继续聊。最后聊到了SpringMVC的九大组建的初始化,以 HandlerMapping为例,SpringMVC提供了三个实现了,分别是:BeanNameUrlHandlerMapping、RequestMappingHandlerMapping、RouterFunctio…

mysql面试(一)

前言 从今天开始,更新一些mysql的基础知识,面试会遇到的知识点之类的内容。比如四个隔离级别,mvcc机制,三大日志,索引,B树的形成等等,从数据库的底层来剖析索引和树是怎么形成的,以…

【常见开源库的二次开发】基于openssl的加密与解密——MD5算法源码解析(五)

一、MD5算法分析 : 1.1 关于MD5 “消息摘要”是指MD5(Message Digest Algorithm 5)算法。MD5是一种广泛使用的密码散列函数,它可以生成一个128位(16字节)的散列值。 RFC 1321: MD5由Ronald Rivest在1992…

算法017:二分查找

二分查找. - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/binary-search/ 二分查找,其实是双指针的一种特殊情况,但是时间复杂度极低&#…

Web前端:HTML篇(一)

HTML简介: 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。 您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器…

MongoDB教程(十三):MongoDB覆盖索引

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言什么是覆盖…

Elasticsearch介绍、安装以及IK分词器 --学习笔记

Elasticsearch 是什么? Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎。它允许你以极快的速度存储、搜索和分析大量数据。Elasticsearch 基于 Apache Lucene 构建,提供了一个分布式、多租户能力的全文搜索引擎,带有 HTTP web 接口…

安装Ubuntu24.04服务器版本

Ubuntu系统安装 一.启动安装程序二.执行 Ubuntu Server 安装向导1.选择安装程序语言,通常选择「English」2.设置键盘布局,默认「English US」即可3.选择安装方式 三.配置网络1.按Tab键选择网络接口(例如 ens160),然后按…

Java:115-Spring Boot的底层原理(下篇)

这里续写上一章博客(115章博客) SpringBoot视图技术: 支持的视图技术 : 前端模板引擎技术的出现(jsp也是),使前端开发人员无需关注后端业务的具体实现(jsp中,具体的…

[Doris]阿里云搭建Doris,测试环境1FE 1BE

首先:阿里云的国内服务器千万不要用容器搭建,或者自己Dockfile构建镜像。两种方式都不得行,压根拉不到github的镜像,开了镜像加速器也拉不到,不要折腾了,极其愚蠢。 背景:现在测试环境&#xff…

openmv学习笔记(24电赛备赛笔记)

#openmv简介 openmv一种小型,可编程机器视觉摄像头,设计应用嵌入式应用和计算边缘,是图传模块,或者认为是一种,具有图像处理功能的单片机,提供多种接口(I2C SPI UART CAN ADC DAC &#xff0…

Linux云计算 |【第一阶段】ENGINEER-DAY4

主要内容: 配置Linux网络参数、配置静态主机名、查看/修改/激活/禁用网络连接、指定DNS、虚拟网络连接、虚拟机克隆、SSH客户端、SCP远程复制、SSH无密码验证(SERVICE-DAY5)、虚拟网络类型 一、网络参数配置 修改网卡配置文件主要是需要配置…

人工智能与社交变革:探索Facebook如何领导智能化社交平台

在过去十年中,人工智能(AI)技术迅猛发展,彻底改变了我们与数字世界互动的方式。Facebook作为全球最大的社交媒体平台之一,充分利用AI技术,不断推动社交平台的智能化,提升用户体验。本文将深入探…

资源调度的艺术:大规模爬虫管理的优化策略

摘要 本文深入探讨了在处理大规模数据抓取项目时,如何通过优化资源调度策略来提升爬虫管理的效率与稳定性。从技术选型到策略实施,揭示了优化的核心技巧,助力企业与开发者高效驾驭大数据采集的挑战。 正文 在互联网信息爆炸的时代&#xf…

TypeScript 开发或面试中常见问题合集

目录 typescript 与 babel 区别编译编译器 模块模块解析规则 命名空间interface 合并逻辑声明合并 普通项目怎么从 js 迁移到 ts解决冲突 第三方工具生成.d.ts文件三斜线指令模块解析逻辑types 发布书写 ts 的声明文件Property includes does not exist on type number[] globa…

RSA非对称加密

前言 RSA是一种非对称加密算法,也是目前最常用的加密算法之一。它由三位发明家(Rivest、Shamir、Adleman)于1977年提出,并以他们的姓氏命名。RSA算法使用了两个密钥:公钥和私钥。公钥可用于对数据进行加密&#xff0c…

《Exploring Aligned Complementary Image Pair for Blind Motion Deblurring》

这篇论文的标题《Exploring Aligned Complementary Image Pair for Blind Motion Deblurring》可以翻译为《探索对齐的互补图像对用于盲运动去模糊》。从标题可以推断,论文的焦点在于开发一种算法或技术,利用成对的图像来解决运动模糊问题,特别是在不知道模糊核(即造成模糊…