//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ファイルのクロスインクルードがあります。したがって、両方とも互いに依存しています。前方宣言とポインターを使用しますが、それはサイクルを壊すようです。だから私の質問は:これは循環依存ですか?なんで?