[英]Is this a circular dependency
//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文件的交叉包含。 因此,他们彼此依赖。 尽管使用前向声明和指针似乎会中断循环。 所以我的问题是:这是循环依赖吗? 为什么?
当A
依赖于B
,反之亦然,根据定义,您具有循环依赖关系。 您可以使它与前向声明一起使用的事实并不会改变这一事实。
您已经用正向声明打破了循环包含链,但是在A和B之间仍然存在逻辑循环依赖关系。它们各自需要其他类提供的东西。
关于上面的评论,您永远不要为向团队提出问题而感到羞耻。 如果发现您错了,那么您已经学到了一些东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.