Salut à tous,
Je suis étudiant en 1e année de DUT info et je dois réaliser un projet visant à reproduire une version simplifiée de Facebook en utilisant deux classes : une classe Personne et une classe Facebook. J'ai donc créé 4 fichiers : personne.h, personne.cpp, facebook.h et facebook.cpp. Un des attributs de ma classe Facebook est un tableau de Personnes contenant tous les inscrits. Afin de pouvoir travailler avec la classe Facebook dans la classe Personne, on me demande de faire une déclaration de la façon suivante dans mon fichier personne.h (chose que j'ai faite) :
Si je n'inclus pas le fichier facebook.h dans mon fichier personne.h, le compilateur m'indique que les attributs de la classe Facebook que j'utilise dans les méthodes de Personne ne sont pas déclarés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 class Facebook ; class Personne{ } ;
Mais si je fais cette déclaration, j'obtiens l'erreur suivante dans mon fichier facebook.h (ligne 12) : "error: 'Personne' does not name a type"
Et là je ne sais plus quoi faire
Voici des extraits de mes deux headers :
personne.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #ifndef PERSONNE_H_INCLUDED #define PERSONNE_H_INCLUDED #include <string> #include "facebook.h" // l'inclusion maudite qui fait foirer la compilation using namespace std; class Facebook; class Personne { private : string nom; string prenom; public : ... }; #endif // PERSONNE_H_INCLUDED
facebook.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #ifndef FACEBOOK_H_INCLUDED #define FACEBOOK_H_INCLUDED #include "personne.h" const int MAXPERSONNES=100; class Facebook { private : Personne fb[MAXPERSONNES]; // c'est ici que j'obtiens mon erreur int tabId[MAXPERSONNES]; int nbPers; bool tabRelation[MAXPERSONNES][MAXPERSONNES]; public : ... }; #endif // FACEBOOK_H_INCLUDED
J'espère donc que vous pourrez m'aider à résoudre ce problème
Merci d'avance !
Partager