首页 > 其他 > 详细

share_ptr指向的对象的析构动作在创建的时候被捕获

时间:2021-04-21 16:03:05      阅读:23      评论:0      收藏:0      [点我收藏+]

share_ptr智能指针能够记录其实际的指向对象的类型,并正确的析构该对象。
所以使用share_ptr来管理的对象不需要虚析构函数

示例代码

#include <iostream>
#include <memory>
using namespace std;

class base{
public:
        ~base(){cout << "in ~base()" << endl;}
};

class derive : public base
{
public:
        ~derive(){cout << "In ~derive()" << endl;}

};


int main()
{
        base* p =new derive;
        delete p;
        cout << "=============================" <<endl;
        {
                shared_ptr<base> ptr(new derive);
        }
        while(1);
        return 0;
}

运行结果

[lhx@lhx-master share_ptr]$ ./a.out 
in ~base()
=============================
In ~derive()
in ~base()

share_ptr指向的对象的析构动作在创建的时候被捕获

原文:https://www.cnblogs.com/DXGG-Bond/p/14684318.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!