【发布时间】:2012-07-03 01:00:27
【问题描述】:
//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::Stuff 未定义之外,我没有看到任何问题。你有什么问题?
-
在工作中,我小组中的一些人称这是一种循环依赖。我不这么认为,所以我想在发言之前与某人再次确认。