Je construis un projet C++ dans Eclipse en utilisant une implémentation tierce de gcc
. Le fichier makefile est généré automatiquement et les règles d'objet sont listées par ordre alphabétique (je ne suis pas sûr que ce soit pertinent).Projet C++ et Eclipse - comment élaborer les en-têtes à inclure et la classe à transmettre
Je n'arrive pas à créer la configuration correcte des directives #include et des déclarations directes afin de les compiler. Je devine - et c'est clairement un mauvais cas de codage de poulet vaudou. Quelqu'un peut-il me dire comment je devrais travailler sur la commande d'inclusion? Le problème est que les classes se réfèrent l'une à l'autre (par exemple Display
se réfère à Texture2D
et vice versa).
je les fichiers suivants:
Display.cpp
Display.h
Display.h
définit les classes suivantes:
class Canvas{ ... };
class Display
{
public:
void PaintTexture(Texture2D * tex);
void WriteText(BitmapFont * fnt);
private:
Canvas * c;
};
et les fichiers:
Texture2D.h
Texture2D.cpp
Texture2D.h définit la classe suivante:
class Texture2D
{
void PaintTo(Canvas * c);
};
et enfin les fichiers:
BitmapFont.h
BitmapFont.cpp
BitmapFont
tel que défini dans BitmapFont.h
fait référence à la fois Canvas
et Texture2D
;
class BitmapFont
{
public:
void Paint(Canvas * c);
private:
Texture2D * tex;
};
main.cpp
fait référence à BitmapFont
et Texture2D
.
Mais le problème est que Display dépend aussi de Texture2D et BitmapFont. Au moins une déclaration avant est nécessaire. – aschepler
est-ce que des déclarations prospectives sont nécessaires? – BeeBand
Oui, vous faites! J'aurais une déclaration Canvas dans un Canvas.h séparé; inclure Canvas dans Display.h, Texture2D.h et BitmapFont.h. De plus, Display.h devra avoir des déclarations anticipées pour Texture2D et BitmapFont: – kartheek