Je viens de commencer à programmer en C++, et j'ai essayé de créer 2 classes dont l'une contiendra l'autre.
Fichier 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
Fichier 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);
}
Fichier B.h
:
#ifndef _B_h
#define _B_h
class B{
public:
B();
};
#endif
Fichier B.cpp
:
#include "B.h"
#include <cstdio>
B::B(){
printf("this is hello from B\n");
}
Je compile d'abord la classe B, puis la classe A, mais j'obtiens ensuite le message d'erreur :
A.h:9 : error : 'B' ne désigne pas un type.
Comment puis-je résoudre ce problème ?