C++ 这是循环依赖吗
这里是.cpp文件中.h文件的交叉包含。所以他们都互相依赖。尽管使用了向前声明和指针,但这似乎会打破这个循环。所以我的问题是:这是一个循环依赖吗?为什么?当C++ 这是循环依赖吗,c++,circular-dependency,C++,Circular Dependency,这里是.cpp文件中.h文件的交叉包含。所以他们都互相依赖。尽管使用了向前声明和指针,但这似乎会打破这个循环。所以我的问题是:这是一个循环依赖吗?为什么?当A依赖于B时,反之亦然,根据定义,您具有循环依赖性。您可以让它使用转发声明这一事实并不会改变这一事实。您已经用转发声明打破了循环包含链,但a和B之间仍然存在逻辑循环依赖关系。它们都需要其他类提供的东西 关于您的上述评论,您永远不应该为向您的团队提出问题而感到羞耻。如果你发现自己错了,那么你就学到了一些东西。除了A::Stuff未定义之外,我看
A
依赖于B
时,反之亦然,根据定义,您具有循环依赖性。您可以让它使用转发声明这一事实并不会改变这一事实。您已经用转发声明打破了循环包含链,但a和B之间仍然存在逻辑循环依赖关系。它们都需要其他类提供的东西
关于您的上述评论,您永远不应该为向您的团队提出问题而感到羞耻。如果你发现自己错了,那么你就学到了一些东西。除了A::Stuff未定义之外,我看不到任何问题。你有什么问题?在工作中,我的团队中有一些人称之为循环依赖。我不认为是这样,所以我想在说话之前再和别人核实一下。
//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();
}