Я часто нахожусь в ситуации, когда я сталкиваюсь с множеством ошибок компиляции/линкера в проекте C ++ из -за некоторых плохих проектных решений (принятых кем -то еще

), которые приводят к круговой зависимости между классами C ++ в разных файлах заголовков (может произойти также в одном и том же файле) . Но, к счастью, (?) Это случается не достаточно часто для меня, чтобы вспомнить решение этой проблемы в следующий раз, когда это произойдет снова. Лучшие решения являются доброжелательными.A.h< /code> < /p>
class B;
class A
{
int _val;
B *_b;
public:
A(int val)
:_val(val)
{
}
void SetB(B *b)
{
_b = b;
_b->Print(); // COMPILER ERROR: C2027: use of undefined type 'B'
}
void Print()
{
coutPrint();
}
void Print()
{
cout
Подробнее здесь:
https://stackoverflow.com/questions/625 ... st-classes