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() { }