C ++ включает в цикл

Обратите внимание на следующие три упрощенных файла:
student.h:

#ifndef STUDENT_H
#define STUDENT_H

#include "course.h"

class Student
{
private:
    Course someCourse;
};

#endif

course.h:

#ifndef COURSE_H
#define COURSE_H

#include "student.h"

class Course
{
private:
    Student someStudent;
};

#endif

и main.cpp:

#include "student.h"
int main();


Это не компилируется, что дает мне
ошибку C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором 'someStudent'

Это привело бы к гораздо большему количеству ошибок (даже для правильных частей кода) в более сложной программе. Я предполагаю, что дизайн неправильный: Студент включает Курс , а Курс включает Студент . С его помощью я хочу представить, что студент проходит несколько курсов, а в курсе есть несколько студентов (я использую векторы в полной программе, избегая их здесь для простоты). Есть какие-нибудь советы, как это возможно?

Заранее спасибо, Влад.

ОБНОВЛЕНИЕ: Спасибо за быстрые ответы. Прямое объявление класса Student в классе Course (и удаление #include "student.h" ), похоже, помогает. Извините, Я думал, что здесь это не имеет значения, но на самом деле я использую векторы константных указателей в каждом из них (поскольку студент не должен иметь возможность управлять курсом и курсом ] не может управлять Студентом ), как:

vector<const Student* const> students; // in Course class
5
задан Vlad 8 October 2011 в 10:14
поделиться