最近设计类,设计的很不合理,耦合很大。出现了类似A包含B,B又包含A的情况。//a.h#include "b.h"class A{....private: B b;};//b.h#include "a.h"class B{....private: A a;};
用前置声明解决了部分问题。//a.h //#include "b.h"class B; class A { .... private: B* b; }; //b.h #include "a.h" class B{ .... private: A* a; };
之后又出现问题了,当a.cpp中定义类A的函数中需要使用类B的定义时,如b->foo();
这时,会报错,解决方案是在a.cpp中包含b.h