//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();
}
Here there is a cross include of the .h files from the .cpp files. So they both depend on one another. Though using the forward declaration and pointers it seems like that would break the cycle. So my question is: Is this a circular dependency? Why?