C++11智能指针shared_ptr的理解与使用示例
Published on 2022-08-07 11:39 in 分类: C/C++ with 萧海~
分类: C/C++

C++11智能指针shared_ptr的理解与使用示例

    对“智能指针”理解:
    所谓“智能指针”,并不是强调“智能”,其实质是帮助C++农民工 T_T 更好、更方便、更安全地管理动态内存,防止内存泄漏问题的出现。智能指针的工作原理就是将代码中申请的动态内存交给智能指针对象进行管理,智能指针对象在其生命周期结束(析构)时,将自己管理的动态内存释放掉,而不需要我们在代码中显式调用delete来释放内存。这样就达到了防止内存泄漏的目的,这就是所谓的“智能”。

    来看代码

    #include <iostream>
    #include <memory>
    #include <string>
    using namespace std;
    class MyClass1
    {
    public:
    MyClass1();
    ~MyClass1();
    void test(string temp);
    private:
    };
    MyClass1::MyClass1()
    {
    cout << "MyClass1 construct" << endl;
    }
    MyClass1::~MyClass1()
    {
    cout << "MyClass1 distruct" << endl;
    }
    void MyClass1::test(string temp)
    {
    cout << temp << endl;
    }
    int main()
    {
    shared_ptr<MyClass1> s1(new MyClass1);
    s1.get()->test("class 1 test");
    getchar();
    }

    运行代码
    由控制台输出可以看到,在getchar()按下回车后return,意味着智能指针对象s1的生命周期已结束,MyClass1的析构函数被执行了。

    https://blog.csdn.net/wwplh5520370/article/details/121120299?spm=1001.2014.3001.5502

    posted @   萧海~  阅读(84)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · winform 绘制太阳,地球,月球 运作规律
    · AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
    · 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
    · 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
    · 上周热点回顾(3.3-3.9)
    点击右上角即可分享
    微信分享提示
    电磁波切换