c++ shared_ptr 常见构造函数

直观的就是说,shared_ptr对象,可以好几个指针指向同一片内存空间。

当最后一个对象失效的时候,这篇内存空间就会释放。

常见构造方法1:

cpp 复制代码
std::shared_ptr<MyClass> ptr(new MyClass);
//或者利用另外一个shared_ptr
std::shared_ptr<MyClass> ptr1(new MyClass);
std::shared_ptr<MyClass> ptr2(ptr1);
//有的时候,我们希望对象在销毁的时候,不仅是调用delete释放内存空间,还需要释放一些其他内存
std::shared_ptr<MyClass> ptr(new MyClass, deleteElement<MyClass>);
//deleteElement可以是一个自定义的,在释放空间时进行业务处理的函数,例如
cpp 复制代码
    template<typename T>
    void deleteElement(T* p)
    {
        if(p!=nullptr)
        {
            p->~T();//先对对象进行析构
            free_Memory(sizeof(p),reinterpret_cast<void*>(p));
            //再将内存还给内存池
        }
    }
    std::shared_ptr<MyClass> ptr(new MyClass, customDeleter);
相关推荐
2601_962885721 小时前
如何用 Python 自动识别股票的支撑位与压力位?
开发语言·python
爱吃奥利奥_wen1 小时前
面向对象三板斧:封装、继承、多态,到底在“装“什么、“承“什么、“变“什么?
开发语言·经验分享·c#
All for pursuit.1 小时前
【位运算-1】338.比特位计数
数据结构·c++·算法·leetcode
我可能是个假开发2 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
小师兄吃牛肉2 小时前
C语言中的nullptr有必要吗
c语言·c++·算法
WL学习笔记3 小时前
日期类(C++)
开发语言·c++·日期类实现
谢亮_vipxieliang4 小时前
Go map与结构体的正确使用
开发语言·golang·哈希算法
H.莓飛4 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
xxwl5854 小时前
数据结构知识点和代码实现总结(C语言实现)
c语言·开发语言·数据结构
汉克老师5 小时前
GESP2026年9月认证C++八级( 第一部分选择题(1~7题)精讲
c++·gesp·小学生·学c++编程