【发布时间】:2023-04-10 08:43:02
【问题描述】:
我在执行以下操作时遇到此错误:
A 级; B类;
A级{
B b_obj ; //这里出现错误
...
}
B类{
...
一个 a_object;
...
}
我观察到的一件事是,如果我将 B 类向上移动,那么它就会被删除,但由于我使用的是双向链接,它在 B 中也有 A 类的对象,因此我无法摆脱这两个错误。
【问题讨论】:
-
您希望
A包含B和B包含A?这不可能。至少有一个必须是引用或指针。 -
恐怕你必须重新考虑你的设计;没有办法绕过这种循环依赖。也许其中一个类可以保存指向另一个类的指针?
-
那么为什么问题解决了 A a_object (没有错误)
-
您可能希望更清楚地了解您要解决的问题,而不是您的代码中的问题,Mike 已经非常准确地描述了这个问题。如果
A包含一个B,而B包含一个reference 或pointer 指向它“拥有”A,(或副-反之亦然),您可能希望清楚地说明这一点。这很可能是 XY 问题。