В предварительной декларации нет подробностей реализации. B
неизвестно A
, кроме того факта, что оно существует.
Для решения этой проблемы отделите вашу декларацию от реализации.
Вам также не хватает типов возвращаемых данных для методов.
Файл A.h:
class B;
class A{
private:
B *b;
public:
void bar();
void foo();
};
Файл A.cpp:
#include "A.h"
#include "B.h"
void A::bar(){
b->foo();
}
Файл B.h:
class A;
class B{
private:
A *a;
public:
void bar();
void foo();
};
Файл B.cpp:
#include "B.h"
#include "A.h"
void B::bar(){
a->foo();
}