История изменений
Исправление m0rph, (текущая версия) :
Используй агрегацию по указателю/ссылке, а не по значению и неполные определения типов. Что-то вроде:
aclass.h
#ifndef ACLASS_H
#define ACLASS_H
class B;
class A {
public:
private:
B* parent_;
};
#endif
bclass.h
#ifndef BCLASS_H
#define BCLASS_H
class A;
class B {
public:
private:
std::vector<A*> children_;
};
#endif
Ну а в cpp-файлах просто сделаешь #include «aclass.h» и #include «bclass.h» соответственно.
Исходная версия m0rph, :
Используй агрегацию по указателю/ссылке, а не по значению и неполные определения типов. Что-то вроде:
aclass.h
#ifndef ACLASS_H
#define ACLASS_H
class B;
class A {
public:
private:
B* parent_;
};
bclass.h
#ifndef BCLASS_H
#define BCLASS_H
class A;
class B {
public:
private:
std::vector<A*> children_;
};
Ну а в cpp-файлах просто сделаешь #include «aclass.h» и #include «bclass.h» соответственно.