前瞻性朋友宣言

pla*_*hos 0 c++

嗨我有一个问题,我尝试做跟随,A类依赖于B类,反之亦然

class A;

 class B{
   A foo;
   friend B A::doSomething();

 };

class A {
   B bar;
   B doSomething;
};
Run Code Online (Sandbox Code Playgroud)

朋友声明不起作用,因为A是不完整的声明.有什么方法可以避免这种情况吗?(Swapp类声明顺序不是解决方案我不想构建一个更复杂的示例,其中交换不再起作用)

Cos*_*ert 6

你现在要做的就是让你的类无限大 (据我所知,bar并且foo是类成员变量,因此这意味着B包括A,包括B......).

你可以使用指针和存储A* fooB* bar在你的一个类中或以某种方式重新设计你的应用程序,以避免这种循环依赖.