在文件啊:
class B;
class A
{
public:
B *b;
A(B *b = nullptr)
{
this->b = b;
}
~A()
{
delete this->b;
}
};
在文件 bh 中:
class A;
class B
{
public:
A *a;
B(A *a = nullptr)
{
this->a = a;
}
~B()
{
delete this->a;
};
};
假设我们有一个指向 A *object 的指针,我们想删除它:
// ...
A *a = new A();
B *b = new B();
A->b = b;
B->a = a;
// ...
delete a;
// ...
A 的解构器会说删除 B;即调用B的解构器。B 的解构器会说 delete A.death loop lé infinitè。
有没有更好的方法来编写代码来解决这个问题?这不是紧迫的问题,只是好奇。
谢谢!