循环引用

#include<memory>
#include<iostream>
using namespace std;
class Child;
class Parent
{
public:
        shared_ptr<Child> c;
        ~Parent(){ cout << "delete p" << endl;}
};
class Child
{
public:
        shared_ptr<Parent> p;
};


int main()
{
        shared_ptr<Parent> p(new Parent);
        shared_ptr<Child> c(new Child);
        (*p).c = c;
        (*c).p = p;
        return 0;
}

猜你喜欢

转载自blog.csdn.net/liu0808/article/details/80529265