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