Как организовать включения файлов?
Здравствуйте. Есть файл "project.h", который включает все нужные .h:
#include "driver.h"
#include "animation.h"
#include "eventRec.h"
// etc
#include "a.h"
#include "b.h"
А также файлы "a.h" и "b.h" с одноименным классами внутри. Класс A включает объект класса B. Нужно подключить "a.h" и "b.h" с помощью "project.h" (чтобы у обоих был доступ к driver и пр.)
A.h:
#include "project.h"
class A
{
private:
B obj;
};
B.h:
#include "project.h"
class B
{
private:
//something
};
При таком раскладе не компилируется - понятно - бесконечный цикл включения. Пробовал ставить include guardы в каждом файле:
#ifndef name_h
#define name_h
/* Тело класса */
#endif
При таком раскладе A не видит B.
error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "obj"
error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
Помогите достичь цели.
Источник: Stack Overflow на русском