Разрешить ошибки сборки из -за круговой зависимости среди классовC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Разрешить ошибки сборки из -за круговой зависимости среди классов

Сообщение Anonymous »

Я часто нахожусь в ситуации, когда я сталкиваюсь с множеством ошибок компиляции/линкера в проекте 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»