Когда декларация класса использует другой класс только как указатели, имеет ли смысл использовать декларацию прямого класса вместо включения заголовочного файла, чтобы упреждающе избегать проблем с круговыми зависимостями? поэтому вместо того, чтобы:
//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"
...
Есть ли причина, почему бы не делать это, когда это возможно?