我试图解决以下这个结构我已经取得了一些文件涉及到循环依赖的问题:与循环依赖问题
啊
#include "B.h"
#include "C.h"
#include "D.h"
namespace NS {
class B;
class C;
class D;
class A {
/* ... */
A(const A& a) {};
A(const B& a) {};
A(const C& a) {};
A(const D& a) {};
/* ... */
};
}; // NS END
了Bh
#include "A.h"
#include "C.h"
#include "D.h"
namespace NS {
class A;
class C;
class D;
class B {
/* ... */
B(const B& a) {};
B(const A& a) {};
B(const C& a) {};
B(const D& a) {};
/* ... */
};
}; // NS END
章
#include "A.h"
#include "B.h"
#include "D.h"
namespace NS {
class A;
class B;
class D;
class C {
/* ... */
C(const C& a) {};
C(const A& a) {};
C(const B& a) {};
C(const D& a) {};
/* ... */
};
}; // NS END
迪拉姆
#include "A.h"
#include "B.h"
#include "C.h"
namespace NS {
class A;
class B;
class C;
class D {
/* ... */
D(const D& a) {};
D(const A& a) {};
D(const B& a) {};
D(const C& a) {};
/* ... */
};
}; // NS END
无论我试试我有采取在其他文件参数类,甚至把申报领先的建设者一些错误,好像它把它宣布为声明和定义,而忽略了真正的定义这是在另一个文件中。我怎么能解决这个问题?
注:我在每个文件中定义后卫,只是我没有把它放在这里
我没有看到任何包括警卫。请显示一些真实的代码。 – 2012-03-23 10:56:56
你为什么要转发声明类*和*包含头文件? – 2012-03-23 10:57:07
我没有把后卫化妆较短这里,但在所有的文件,真正的代码不与任何贡献这里,只能使凌乱,方案是一样的 – 2012-03-23 11:07:01