1.头文件中使用前导声明替代交叉引用,由于前导声明只是一个符号声明,不能知道实际对象的大小,引用的对象只能是指针类型。
2.源文件中包含自己的头文件。
a.h
class B; class A { public: A(); B* b; };
b.h
class A; class B { public: B(); A* a; };
a.cpp
#include "A.h" A::A() { }
b.cpp
#include "B.h" B::B() { }