boost的shared_ptr循环引用(1)

来源:互联网 发布:ios 网络请求第三方 编辑:程序博客网 时间:2024/05/16 11:12
A.h#include "B.h"class A{    public:        A();        virtual ~A();    public:        BPtr m_ptrB;}typedef boost::shard_ptr<A> APtr; B.hclass B{    public:        B();        virtual ~B();    public:        APtr m_ptrA;}typedef boost::shared_ptr<B> BPtr;main.cpp#include "A.h"#include "B.h"int main(){    {        APtr ptrA = boost::make_shared<A>();//使用make_shared初始化        BPtr ptrB = boost::make_shared<B>();        //循环引用        ptrA->m_ptrB = ptrB;        ptrB->m_ptrA = ptrA;    }}

资源创建完毕
资源创建完毕
ptrB指针变量释放
ptrB指针变量释放
ptrA指针变量释放,内存泄漏发生
ptrA指针变量释放

1 0
原创粉丝点击