Bonjour à tous,
C'est la première fois que je fais de l'héritage en C++ et j'ai un problème au niveau des include des .hh.
J'ai quatre classes (avec pour chaque un .cc et .hh (dans le .hh il y a les déclarations des attributs de classes et des méthodes)).
La première est une classe "conteneur" Ecole qui a un tableau de Personne.
La seconde est la classe Personne est la classe mère des deux dernières classes Professeur et Etudiant.
Jusque là ça va mais après pour les include je recontre des problèmes de redéfinition de la classe Personne.
Mon erreur est la suivante :
Dans mes fichiers .hh j'avais comme include :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 In file included from Etudiant.hh:1, from Ecole.hh:2, from Ecole.cc:6: Personne.hh:5: error: redefinition of `class Personne' Personne.hh:5: error: previous definition of `class Personne
Avec ce code c'est sûr que j'ai une redéfinition mais en essayant d'autres façons je suis parvenu à trouver quelque chose qui marche mais qui n'est sûrement pas propre. J'ai dû mettre le contenu (déclarations des attributs de classes et des méthodes) des .hh des classes Professeur et Etudiant dans le .hh de Personne. J'ai supprimé les .hh de Professeur et Etudiant. Donc finalement je n'ai plus que le #include "Personne.hh" dans la classe Ecole.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Ecole.hh #include "Etudiant.hh" #include "Professeur.hh" Professeur.hh #include "Personne.hh" Etudiant.hh #include "Personne.hh"
J'aurais besoin de votre aide pour résoudre ce problème, si vous avez des suggestions n'hésiter pas.
Merci de vos réponses
Partager