std::shared_ptr 用法

news/2024/11/23 2:05:59/

描述:
       std::shared_ptr是c++标准库中的一个模板类,它提供了自动化的内存管理,通过共享引用计数的方式来管理动态分配的对象。这意味着多个std::shared_ptr可以共享同一个对象,并在不再需要时自动释放它。

构造:

#include <iostream>
#include <memory>class CTest
{
public:CTest(int n) {m_n = n;std::cout << "构造 " << this << std::endl;}~CTest() {std::cout << "析构 " << this << std::endl;}void Show() {std::cout << m_n << std::endl;}private:int m_n;
};int main()
{//构造1std::shared_ptr<CTest> ap1(new CTest(1));ap1->Show();//构造2std::shared_ptr<CTest> ap2 = std::make_shared<CTest>(2);ap2->Show();//构造3CTest* p1 = new CTest(3);std::shared_ptr<CTest> ap3(p1);ap3->Show();return 0;
}

自定义删除器:
       在某些情况下,我们可能需要在std::shared_ptr销毁对象时执行自定义的清理操作。这可以通过提供自定义的删除器函数或函数对象来实现。删除器函数将在对象销毁时被调用,并负责执行所需的清理操作。

#include <iostream>
#include <memory>class CTest
{
public:CTest() {m_n = 0;std::cout << "构造 " << this << std::endl;}~CTest() {std::cout << "析构 " << this << std::endl;}void Show() {std::cout << m_n << std::endl;}private:int m_n;
};int main()
{CTest* p = new CTest[10];std::cout << "--------------------" << std::endl;std::shared_ptr<CTest> ap(p, [](CTest* ptr) {delete[] ptr; });return 0;
}

http://www.ppmy.cn/news/706905.html

相关文章

day3 QT对话框

目录 QDialog 标准对话框&#xff08;Standard Dialogs&#xff09;&#xff1a; 内置对话框&#xff08;Built-in Dialogs&#xff09;&#xff1a; 自定义对话框&#xff08;Custom Dialogs&#xff09; 示例 myqdialog.h widget.h myqdialog.cpp widget.cpp QDialog Q…

全景影像技术研发公司Insta 360获数亿元级C+轮融资,计划A股上市...

3月20日消息&#xff0c;全景影像技术研发公司Insta360获得数亿元级C轮融资&#xff0c;本轮投资方包括麦高控股、华金资本、朗玛峰创投等。本轮资金将用于产品研发&#xff0c;市场营销与渠道拓展&#xff0c;提升品牌影响力。 此前&#xff0c;Insta360曾在2016年3月获得迅雷…

全景影像技术研发公司Insta 360获数亿元级C+轮融资,计划A股上市

3月20日消息&#xff0c;全景影像技术研发公司Insta360获得数亿元级C轮融资&#xff0c;本轮投资方包括麦高控股、华金资本、朗玛峰创投等。本轮资金将用于产品研发&#xff0c;市场营销与渠道拓展&#xff0c;提升品牌影响力。 此前&#xff0c;Insta360曾在2016年3月获得迅雷…

EasyDSS流媒体服务器成功实现5G超高清8k视频RTMP/HLS(m3u8)直播过程中遇到的一些坑(insta360 4k/8k直播)

自从2019年春节回来之后&#xff0c;5G直播就如雨后春笋一般&#xff0c;各大公司和运营商都在推行5G 4K、8K高清直播&#xff0c;当然&#xff0c;这也就卖火了insta360这款设备了&#xff0c;各家都在用这个设备做360全景高清4k、8k直播&#xff0c;我们对接的有移动、联通、…

Insta360计算机视觉算法实习生 面经

整个面试下来的感受是这家公司很注重python底层知识的理解 问到的python语法知识有 python装饰器()的用法&#xff0c;这个完全没了解过python定义一个类时怎么定义私有变量Python怎么样不实例化一个类而使用类内的函数 工程经验 是否遇到过训练到一半卡住的原因&#xff0c…

360全景单张图片HDR处理方法教程

HDR是360全景摄影中常用的图片处理技术。如果使用单张图片进行色调映射处理&#xff0c;推荐使用RAW格式文件。由于其有着比jpeg格式文件更大的动态范围&#xff0c;经过色调映射处理的图片虽然称不上真正的HDR色调映射图像&#xff0c;而且效果也差强人意。尽管如此&#xff0…

sqlserver management studio 2014 升级2016_画质提升音质更佳:Insta360影石ONE R迎来最强升级...

9月14日&#xff0c;Insta360影石ONE R相机上市8个月后迎来最强升级&#xff0c;从画质、音质、操作流程等层面为用户带来更佳使用体验&#xff0c;用户可前往苹果App Store和安卓应用商店下载最新版本APP&#xff0c;并且可前往Insta360影石官网下载页获取Studio Beta版本以及…