//A.h
class B;
class A{
void Stuff();
B* FOO():
B* _b;
}
extern A* A_A();
//A.cpp
#include "A.h"
#include "B.h"
B* A::FOO(){
return(_b);
}
//B.h
class B{
void BOO();
}
//B.cpp
#include "A.h"
#include "B.h"
void B::BOO(){
A_A->Stuff();
}
这里有.cpp文件的.h文件的交叉包含。所以他们都互相依赖。虽然使用前向声明和指针似乎会破坏循环。所以我的问题是:这是循环依赖吗?为什么呢?
答案 0 :(得分:1)
当A
依赖于B
时,反之亦然,根据定义,您具有循环依赖性。您可以使用前向声明来处理它并不会改变这一事实。
答案 1 :(得分:0)
您已使用前向声明打破了循环 include 链,但A和B之间仍然存在逻辑循环依赖关系。它们都需要其他类提供的内容。
关于上述评论,您不应该为您的团队提出问题而感到羞耻。如果发现你错了,那你就学到了一些东西。