簡體   English   中英

這是循環依賴嗎

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM