Bonjour.
J'ai un petit probleme de classes dependants les unes des autres.
C'est generique, ca m'est arrive des tonnes de fois. Et a d'autres personnes. Du coup je vais prendre un cas general : c'est surement arrive a quelqu'un ici qui a deja reussi a passer ce cap. Donc je tente ma chance.
Jusque la, c'est une situation que j'ai rencontre tres souvent, et si je sais comment m'en occuper, il y a aussi des cas tres particuliers (ca m'arrive toujours au moins une fois par projet, et je finis toujours par laisser tomber et remplacer le tout par un truc degueulasse : generalement, regrouper les classes dans le meme header fonctionne...).
Voici comment je declare mes headers :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
#ifndef MACLASSE_HPP
# define MACLASSE_HPP
# include "autreClasse.hpp"
class MaClasse
{
private:
autreClasse* var;
};
#else
class MaClasse;
#endif |
L'autre classe est naturellement declaree de la meme facon.
C'est comme ca que TOUT mes headers sont rediges, sans exception.
Quand il n'y a pas trop d'inclusions imbriques, ca passe.
Pourtant, quand j'ai besoin de rajouter d'autres inclusions imbriques, parfois, je tombe sur cette erreur mystique : le compilateur m'annonce dans autreClasse.hpp que MaClasse n'a pas ete declare.
Il me lance une jolie insulte du genre :
error C2079: 'autreClasse::var' uses undefined class 'MaClasse'
J'ai beau aussi faire ma declaration de cette facon la :
1 2 3 4 5 6
|
class MaClass;
class autreClasse
{
MaClass* var;
}; |
Le probleme reste le meme.
Aidez-nous !
Partager