#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;
}
#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;
}