QScopedPointer和C++中的智能指针std::unique_ptr其概念是一样的,它包装了new操作符在堆上分配的动态对象,能够保证动态创建的对象在任何时候都可以被正确地删除。但它有更严格的所有权,并且不能转让,一旦获取了对象的管理权,你就无法再从它那里取回来。也就是说,只要出了作用域,指针就会被自动删除,因为它的拷贝构造和赋值操作都是私有的,与QObject及其派生类风格相同。

QScopedPointer官方示例

没有使用智能指针:

void myFunction(bool useSubClass)
{MyClass *p = useSubClass ? new MyClass() : new MySubClass;QIODevice *device = handsOverOwnership();if (m_value > 3) {delete p;delete device;return;}try {process(device);}catch (...) {delete p;delete device;throw;}delete p;delete device;
}

使用智能指针QScopedPointer:

void myFunction(bool useSubClass){// assuming that MyClass has a virtual destructorQScopedPointer<MyClass> p(useSubClass ? new MyClass() : new MySubClass);QScopedPointer<QIODevice> device(handsOverOwnership());if (m_value > 3)return;process(device);}

注意:因为拷贝构造和赋值操作私有的,所以不能用作容器的元素。

初始化

每个变量都需要初始化才能够正确使用,官方给的示例较复杂,不符合实际现场,现有三种方式初始化,分别示例如下。

直接初始化:

QScopedPointer<Generator> g{new Generator()};

同其它变量初始化步骤,直接使用new关键字。

调用reset方法进行初始化:

// 在A处声明智能指针变量。
QScopedPointer<Generator> auto_generator_;
...
...
...// 在B处重新对变量auto_generator_进行初始化,变量auto_generator_原来持有的指针被delete。
auto_generator_.reset(new Generator{});

该方法用在已经使用过的智能指针。

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

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

相关文章

TensorFlow基础之理解计算图

Tensor Flow TensorFlow 本章介绍TensorFlow的基础。特别地&#xff0c;你将学习如何用TensorFlow进行基础计算。在开始使用 TensorFlow之前,你必须理解它背后的哲学。 这个库基于计算图的概念&#xff0c;如果你不理解计算图是如何工作的&#xff0c;你就不能理解如何使用这…

【HarmonyOS Next之旅】DevEco Studio使用指南(三十五) -> 配置构建(二)

目录 1 -> 定制HAP多目标构建产物 1.1 -> 定义产物的HAP包名 1.2 -> 定义产物的deviceType 1.3 -> 定义产物的distributionFilter 1.4 -> 定义产物preloads的分包 1.5 -> 定义产物的source源码集-pages 1.6 -> 定义产物的source源码集-sourceRoots…

[muduo] ThreadPool | TcpClient | 异步任务 | 通信测试

第九章&#xff1a;线程池&#xff08;ThreadPool&#xff09; 在第八章《TcpServer》中&#xff0c;我们了解到muduo::net::TcpServer通过EventLoop线程池处理入站连接。 这些EventLoop线程主要负责网络I/O&#xff1a;套接字读写和定时器处理&#xff0c;由Poller和Channel…

【笔记】解决部署国产AI Agent 开源项目 MiniMax-M1时 Hugging Face 模型下载报错解决方案

MiniMax-AI/MiniMax-M1&#xff1a;MiniMax-M1&#xff0c;世界上第一个开放权重、大规模的混合注意力推理模型。 一、问题背景 【笔记】解决部署国产AI Agent 开源项目 MiniMax-M1时 Hugging Face 模型下载缓存占满 C 盘问题&#xff1a;更改缓存位置全流程-CSDN博客 在执行hu…

新手如何利用AI助手Cursor生成复杂项目

新手如何利用AI助手Cursor生成复杂项目 在编程学习的道路上&#xff0c;AI工具正成为新手开发者的得力助手。本文将介绍如何借助Cursor这一强大的AI代码助手&#xff0c;从零开始构建复杂项目。 一、基础准备工作 作为编程新手&#xff0c;面对复杂项目时常常不知从何下手。利…

【Fargo】x264的intra refresh 3: 采集、编码到 RTP打包

实际调试默认并么有打开b_intra_refresh D:\XTRANS\thunderbolt\ayame\zhb-bifrost\player-only\echo\codec\x264\echo_h264_encoder.cpp 即使打开了b_intra_refresh,也不影响RTP打包: 但是有一些要注意的地方: RFC 6184(“RTP Payload Format for H.264 Video”) intra …

Vue3 的生命周期:从 Composition API 视角看

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

面向互联网大厂Java岗位面试:Spring Boot与微服务架构的深入探讨

面向互联网大厂Java岗位面试&#xff1a;Spring Boot与微服务架构的深入探讨 问题1&#xff1a;什么是Spring Boot&#xff0c;它如何简化Spring应用程序的开发&#xff1f; 简洁回答&#xff1a; Spring Boot是一个基于Spring框架的开源Java平台&#xff0c;旨在简化新Sprin…

【信号与系统四】采样和通信系统

在一定条件之下&#xff0c;一个连续时间信号完全可以用该信号在等时间间隔点上的值或样本来表示&#xff0c;并且可以用这些样本值把该信号全部恢复出来。这个稍微有点使人吃惊的性质来自于采样定理。 例如一帧一帧的电影画面&#xff0c;在我们大脑中构成连续的生活情节 接…

关于球面投影SphericalProjector的介绍以及代码开发

球面投影的几何背景 什么是球面投影&#xff1f; 球面投影将 2D 图像中的像素点&#xff08;通常是平面&#xff09;映射到一个虚拟的球面上&#xff0c;再将球面上的角度&#xff08;经度、纬度&#xff09;展开到平面图上。它是广角图像拼接、全景图生成中常用的投影方法。…

wordpress外贸独立站常用留言表单插件 contact form 7

Contact Form 7 介绍 Contact Form 7 是一款非常流行的 WordPress 联系表单插件&#xff0c;广泛应用于外贸独立站。以下是其主要特点&#xff1a; 功能强大且免费&#xff1a;Contact Form 7 是完全免费的&#xff0c;支持创建和管理多个联系表单。 简单易用&#xff1a;用…

佰力博科技与您探讨油浴极化的优点及工艺流程

一、油浴极化的优点 温度范围宽&#xff1a;油浴极化适用于较宽的温度范围&#xff0c;适合不同材料的极化需求。 绝缘强度高&#xff1a;油浴介质具有良好的绝缘性能&#xff0c;能够承受较高的极化电场。 防潮性好&#xff1a;油浴极化在潮湿环境中仍能保持良好的绝缘性能。 …

从0开始学习R语言--Day28--高维回归

我们一般处理的数据&#xff0c;都是样本数量远大于其特征数量&#xff0c;可用很多种回归方法&#xff1b;但当特征数量远大于样本量时&#xff0c;可能会因为出现无数多个完美解导致过拟合现象&#xff0c;也使得在计算时搜索最有特征子集的方法不再可行&#xff08;因为计算…

响应式数据的判断:Vue3中的方法

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

[论文阅读] 人工智能+软件工程 | 用大语言模型架起软件需求形式化的桥梁

用大语言模型架起软件需求形式化的桥梁&#xff1a;一篇ACM调查草案的深度解读 论文信息 arXiv:2506.14627 ACM Survey Draft on Formalising Software Requirements with Large Language Models Arshad Beg, Diarmuid O’Donoghue, Rosemary Monahan Comments: 22 pages. 6 s…

DM8故障分析工具-AWR报告

在数据库运维过程中&#xff0c;大家都会利用数据库提供的各种工具来找到数据库存在的问题&#xff0c;以便对症实施配置优化&#xff0c;我是因工作需要&#xff0c;最近开始了解达梦数据库DM8的故障分析工具&#xff0c;这里发现AWR报告是一款不错的自带工具&#xff0c;故而…

《企业司法风险监控系统架构设计:从数据采集到T+1实时预警的完整解决方案》

本文深入探讨了天远大数据在构建企业级司法风险监控平台和风险报告查询系统方面的技术实现与业务应用。平台依托权威、合法的司法数据源&#xff0c;通过实时数据处理与智能分析&#xff0c;为金融、供应链、人力资源等领域提供精准、及时的司法预警和决策支持。它通过灵活的多…

使用ccs生成bin

CCS12.6 编译生成BIN文件正确方法_ccs生成bin文件-CSDN博客

Kafka网络模块全链路源码深度剖析与设计哲学解读

在分布式消息系统的竞技场上&#xff0c;Kafka凭借卓越的高性能与高吞吐量脱颖而出&#xff0c;而其网络模块正是支撑这一卓越表现的核心引擎。从生产者将消息送入消息队列&#xff0c;到消费者从中拉取消息&#xff0c;Kafka网络模块贯穿消息流转的每个环节。本文不仅深入Kafk…

华为开发者大会6月20日举行

华为开发者大会2025&#xff08;HDC 2025&#xff09;将于6月20日至22日在深圳松山湖举办。 目前&#xff0c;华为开发者大会2025的详细日程已经公布&#xff0c;华为终端BG董事长余承东、华为终端BG首席执行官何刚、华为终端BG软件部总裁龚体等华为高管将出席并发表主题演讲&a…