ласс @ C ++, его базовый класс и циклическое включение включают [duplicate]

На этот вопрос уже есть ответ:

Устранить ошибки сборки из-за циклической зависимости между классами, es 9 ответов

FILE # 1 (foo.h):

#ifndef FOO_H_
#define FOO_H_
#include "baseclass.h"
#include "bar.h"
class Bar;
class Foo : public baseclass {
public:
bar *varBar;
};
#endif

FILE # 2 (bar.h):

#ifndef BAR_H_
#define BAR_H_
#include "foo.h"
class Foo;
class Bar {
public:
Foo *varFoo;
};
#endif

FILE # 3 (baseclass.h):

#ifndef BASECLASS_H_
#define BASECLASS_H_
#include "foo.h"
class Foo;
class baseclass {
public:
list<Foo*> L;
};
#endif

Но я получаю ошибку компиляции в файле # 1 в строкеclass Foo : public baseclass:

Error: expected class-name before »{« token

Если я добавлюclass baseclass; Объявление класса bevor, я получаю эту ошибку:

Error: invalid use of incomplete type »struct baseclass«

Так что мой вопрос, как я могу разрешить циклические зависимости с базовыми классами?

Спросите, если вы не поняли. Я уже пытался изменить порядок включения заголовков, но пока не повезло. Спасибо за любую подсказку.

EDIT: Примечание: я использую include guard EDIT2: Он не ограничен указателями, поэтому я на всякий случай убираю их. EDIT3: добавлен базовый класс (забыл O.o) EDIT4: теперь все должно быть ясно и без каких-либо недостатков, проблема с этим кодом сохраняется.

Ответы на вопрос(5)

Ваш ответ на вопрос