#include <iostream>
#include <list>
using namespace std;
class object
{
public:
list <object *> child;//孩子链表
public:
object(object *parent = nullptr)
{
if(parent != nullptr)
{
parent->child.push_back(this);
}
}
virtual ~object()
{
for(auto p = child.begin();p!=child.end();p++)
{
delete *p;
}
}
};
class A :public object
{
public:
A(object *parent = nullptr)
{
if(parent != nullptr)
{
parent->child.push_back(this);
}
}
virtual ~A()
{
cout<<"析构函数"<<endl;
}
};
class b :public object
{
public:
b(object *parent = nullptr)
{
if(parent != nullptr)
{
parent->child.push_back(this);
}
}
virtual ~b()
{
cout<<"析构函数"<<endl;
}
};
int main()
{
A w;
b *btn = new b(&w);
cout << "Hello World!" << endl;
return 0;
}