[英]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.