jojomillenium
Messages postés136Date d'inscriptionsamedi 1 mai 2004StatutMembreDernière intervention26 mai 2007
-
15 oct. 2006 à 16:43
jojomillenium
Messages postés136Date d'inscriptionsamedi 1 mai 2004StatutMembreDernière intervention26 mai 2007
-
17 oct. 2006 à 08:55
Bonjour,
J'ai un probleme! sinon je ne serai pas la :P
J'explique:
J'ai un fichier general.h dans lequel je declarai des structures, je les
ai changé en class pour essayer une autre methode mais ca marche
toujour pas:
class VERTEX
// Build our Vertex Structure
{
public:
float x, y, z;
// 3D coordinates
float u, v;
// Texture coordinates
};
class QUAD
// Build our Quads Structure
{
public:
VERTEX vertex[4];
// Array of 4 vertices
};
// Call it QUAD
class ETAGE
// Build our Etage Structure
{
public:
int numquads;
// Number of Triangles in Floor
QUAD* quad;
// Pointer to array of Quads
};
class FLOOR
// Build our Floor Structure
{
public:
int num_floors;
ETAGE etage1;
void DrawQuads(ETAGE& etage1);
};
FLOOR floor1;
Et dans mon main.cpp j'inclue mon general.h et j'ai des fonctions tel que
SetupWorld() {}(lit un fichier txt et rempli mon floor1 avec les infos des cubes a dessiner
DrawQuads() {} (lis floor1 pour dessiner les cubes)
qui utilise mon floor1... jusque la pas
de souci ca marche, mais j'aimerai pourvoir avoir histoire de cleaner
mon main.cpp un Display.cpp et un GestionFichier.cpp
Je ne sais pas comment faire pour que ca marche! Car je déclarai mes fonctions comme ca void DrawQuads(FLOOR& floor1)
dans mon Display.h et Display.cpp et dans mon main j'y fais appel en tapant DrawQuads(floor1) sans oublier d'inclure dans mon main le Display.h mais il me fait une erreur car il dis que FLOOR est indefini !
Qu'est ce qu'il faut que je fasse pour que ca marche?
cs_Matt67
Messages postés549Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention 6 mars 20103 17 oct. 2006 à 06:04
Bonsoir,
dans le fichier general.h, à la fin tu as FLOOR floor1.
Moi je ferais ça dans un .cpp, soit dans une fonction qui cree l'objet, soit directement dans le main, parce que chaque fois que tu inclus general.h tu re-instancie ta classe FLOOR.
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 16 oct. 2006 à 13:09
Si tu définis un objet dans un .h, soit tu le définis static ou extern. => google pour les détails.
"FLOOR floor1 new FLOOR();"> faux: FLOOR * floor1 = new FLOOR();
Pour ton probleme de définition. Des .h ne contiennent que des
définitions. Si tu as des fonctions a faire, tu peux la définition dans
le .h et l'implémentation dans un .cpp, c'est pourtant pas compliqué.
Vous n’avez pas trouvé la réponse que vous recherchez ?
jojomillenium
Messages postés136Date d'inscriptionsamedi 1 mai 2004StatutMembreDernière intervention26 mai 2007 16 oct. 2006 à 14:11
Je sais, alors voila ce que j'avais histoire que tu comprenne que j'avais pas fait n importe quoi:
Dans General.h j'ai déclaré mes class comme ci dessus.
Dans main.cpp #include "General.h"
#include "Display.h" DrawQuads(floor1);
Dans Display.h
void DrawQuads(FLOOR& floor1);
Dans Display.cpp #include "Display.h"
Void DrawQuads(FLOOR& floor1)
{
//mes truc utilisant floor1.etage1. ...ect
}
Quest ce que j'ai fait de faux? Comme ca pour lui FLOOR nest pas
bien defini, si je rajoute #include "General.h" dans mon Display.cpp il
me dis qui a une erreur de sur defnitiion de FLOOR!
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 16 oct. 2006 à 14:26
Tu utilise le type FLOOR dans Display.h
Or, ce type est défini dans General.h et n'est pas connu de Display.h
Rajoute #include "General.h" dans Display.h et ça marchera tout de suite mieux
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
jojomillenium
Messages postés136Date d'inscriptionsamedi 1 mai 2004StatutMembreDernière intervention26 mai 2007 16 oct. 2006 à 15:14
Ca c'est deja fait aussi! :P C'est pour ca que je suis la, c'est que
j'ai pourtant deja tout essayé et que ca joue pas! tous mes .h ont les
#ifndef ... etc
jojomillenium
Messages postés136Date d'inscriptionsamedi 1 mai 2004StatutMembreDernière intervention26 mai 2007 17 oct. 2006 à 08:55
Tes un genie!
Ca faisait 1 semaine a 10h par jour que j'étais sur le developpement de
ce programme, alors c'est pas facile de prendre du recul pour des
ptites erreurs pareil :D