最佳答案
每当一个类声明只使用另一个类作为指针时,使用类前向声明而不包含头文件是否有意义,这样可以先发制人地避免循环依赖的问题?所以,与其拥有:
//file C.h
#include "A.h"
#include "B.h"
class C{
A* a;
B b;
...
};
相反,应该这样做:
//file C.h
#include "B.h"
class A;
class C{
A* a;
B b;
...
};
//file C.cpp
#include "C.h"
#include "A.h"
...
有什么理由不在任何可能的地方这么做吗?