嗨我有问题,我尝试做跟随,A级依赖B级,反之亦然
class A;
class B{
A foo;
friend B A::doSomething();
};
class A {
B bar;
B doSomething;
};
朋友声明不起作用,因为A是不完整的声明。有什么方法可以避免这种情况吗? (Swapp类声明顺序不是一个解决方案,我不想构建一个更复杂的例子,交换不再起作用)
答案 0 :(得分:6)
你现在要做的是让你的课程无限大 (据我所知,bar
和foo
是类成员变量,因此这意味着B
包含A
,其中包含B
,...)。
您可以在其中一个类中使用指针并存储A* foo
或B* bar
,或以某种方式重新设计您的应用程序,以避免此循环依赖。
答案 1 :(得分:0)
嵌套这两个类。这给出了关于何时何地可以声明和定义内容的更有利的规则。
此外,我怀疑你的设计可能只是被塞住了。您可能希望发布A和B的实际内部结构,以便我们提供更多建议。