Определение взаимно-зависимых структур в C++

В программе у меня есть две структуры A и B и я пытаюсь последовательно определить их, при этом у них обоих есть поля, являющиеся ссылками на объект другой структуры. Структура примерно такая:

struct A{
 vector<B*> name;
 A(){
     name = {};
 }
};
struct B{
 A* name;
 B(A* name){
     this->name = name;
 }
};

Но при запуске компиляции выдается ошибка: 'B' was not declared in this scope ... Я пробовал выносить это в отдельные файлы, создавать пустой класс B перед A: struct B;, но ничего так и не получилось сделать.


Ответы (1 шт):

Автор решения: Harry

Forward declaration спасет отца русской демократии :)

struct B;

struct A
{
    vector<B*> name;
    A(){
        name = {};
    }
};
struct B{
    A* name;
    B(A* name){
        this->name = name;
    }
};
→ Ссылка