Я только начал программировать на С++, и я попытался создать 2 класса, в которых один будет содержать другой.
Файл A.h
:
#ifndef _A_h
#define _A_h
class A{
public:
A(int id);
private:
int _id;
B _b; // HERE I GET A COMPILATION ERROR: B does not name a type
};
#endif
Файл A.cpp
:
#include "A.h"
#include "B.h"
#include <cstdio>
A::A(int id): _id(id), _b(){
printf("hello\n the id is: %d\n", _id);
}
Файл B.h
:
#ifndef _B_h
#define _B_h
class B{
public:
B();
};
#endif
Файл B.cpp
:
#include "B.h"
#include <cstdio>
B::B(){
printf("this is hello from B\n");
}
Сначала я компилирую класс B, а затем класс A, но затем я получаю сообщение об ошибке:
A.h: 9: ошибка: 'B не называет тип
Как исправить эту проблему?