begin process at 2012 05 28 08:29:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Class et Structure...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Class et Structure...

dimanche 15 octobre 2006 à 16:43:26 | Class et Structure...

jojomillenium

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?

Merci infiniment de m'aider

lundi 16 octobre 2006 à 08:43:17 | Re : Class et Structure...

Renfield

Administrateur CodeS-SourceS

as tu bien instancié floor1 ?
FLOOR floor1 = new FLOOR();

perso, je pense que tu sera pas gagnant (coté perf) a utiliser des classes en lieu et place de struct...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
lundi 16 octobre 2006 à 09:37:44 | Re : Class et Structure...

jojomillenium

Oui je l'ai bien instancié pourtant!

Comment dois je faire avec des struct alors? ou dois je definir les structures que j ai mentinonné plus haut?
ou dois je créer mon FLOOR floor1 ?
et comment mettre mes fonctions qui utilise floor1 dans d'autre cpp sans créer d'erreur de surdefinition ou de sous definition de ma structure?

Revoila la def de mes structures :
typedef struct tagVERTEX                            // Build our Vertex Structure
{
    float x, y, z;                                    // 3D coordinates
    float u, v;                                        // Texture coordinates
} VERTEX;

typedef struct tagQUADS                                // Build our Quads Structure
{
    VERTEX vertex[4];                                // Array of 4 vertices
} QUAD;                                                // Call it QUAD

typedef struct tagETAGE                                // Build our Floor Structure
{
    int numquads;                                    // Number of Triangles in Floor
    QUAD* quad;                                        // Pointer to array of Quads
} ETAGE;                                            // Call it ETAGE

typedef struct tagFLOOR                                // Build our Floor Structure
{
    public:
    int num_floors;
    ETAGE etage1;                                  
}FLOOR;


FLOOR floor1;


et j'aimerai avoir 2 fonctions dans 2 autres cpp qui utilise floor1? Comment definir tout ca?

Merci beaucoup!


lundi 16 octobre 2006 à 13:09:55 | Re : Class et Structure...

luhtor

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é.
lundi 16 octobre 2006 à 14:11:54 | Re : Class et Structure...

jojomillenium

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!

Merci pour votre aide

lundi 16 octobre 2006 à 14:26:30 | Re : Class et Structure...

buno

Administrateur CodeS-SourceS
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
lundi 16 octobre 2006 à 14:44:04 | Re : Class et Structure...

jojomillenium

Comme je l'ai dis dans mon precedent message, si j inclue General.h dans mon Display.h y a erreur de sur definition!
lundi 16 octobre 2006 à 15:01:03 | Re : Class et Structure...

gagah1

Membre Club
Dans le fichier General.h, encadre tes structures comme ceci:
#ifndef GENERAL.H
#define GENERAL.H
.......
// mets ici tes declarations
.......
#endif

Comme ça il n'y a plus de surdefinition quand tu rajoute "General.h" dans "Display.h"
lundi 16 octobre 2006 à 15:14:33 | Re : Class et Structure...

jojomillenium

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
lundi 16 octobre 2006 à 16:02:34 | Re : Class et Structure...

gagah1

Membre Club
Je vois que toutes tes classes n'ont pas de constructeur, alors pour configurer un objet en C++ il faut un constructeur.

1 2

Cette discussion est classée dans : class, cpp, structure, floor, floor1


Répondre à ce message

Sujets en rapport avec ce message

Alignement structure = class ? [ par NairodDorian ] Bonjour,Suite a un article que j'ai lu sur le site de AMD (SOFTWARE OPTIMIZATION GUIDE FOR AMD64 PROCESSOR) qui est celui ci : http://developer.amd.co problème d'éritage [ par panthere007 ] Salut, Bon je vais essayer d'être clair mai avec l'héritage c'est pas facile précision ce code est programmer sous geany et compiler avec g++ excuser compile à plusieurs fichiers [ par ntrvdonett ] Bonsoir,Au risque de faire rire, j'ai un problème de compilation en mettant une class dans un fichier à part, je rame depuis deux heure pour rien, et CPP - probleme structure contenant pointeur sur fonction [ par poueted ] Bonjour tout le monde.J'ai une structure :struct Operation { BOOL (*op) (BOOL, BOOL); int rg_arg1, rg_a [cpp,sql server]affichage de valeurs [ par zoot06 ] Bonjour à tous,voila j'attaque une base de données dans sql server et je voudrais afficher les valeurs d'une colonne de type varchar(30), seulement, j Erreur structure, redéfinition [ par unikaz ] Bonjour à tous,Je me trouve (en tant que débutant) confronté à un problème que je n'arrive pas à résoudre (malgrès de longues recherches sur les forum Intégration d'une DLL VB6 dans un projet CPP [ par guilleto ] Bonjour à toutes et tous,Je développe un projet en C++ et je dois utiliser une DLL réalisée en VB6 !Je connais le nom de la DLL ainsi que le nom de la structure des algorithmes [ par mokrissat ] j'ai un exercice : Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.N.B: la factorielle de 8, notée 8!,vaut 1*2*3*4 Comment faire pour re_afficher un dialogue apres "RedrawWindow" API sous DEV cpp [ par LouisJean ] louisjean dev cpp Bonjours a tous!Comment faire pour remontrer le dialogue "Mon_DIALOG" en API wind32 sous DEV AXIS C++ / VS 2003 / WebServices [ par CSharpJSharp ] Bonjour tout le monde ;J'utilise AXIS C++ (http://ws.apache.org/axis/cpp/download.html) qui me génère le source C++ (.cpp et .hpp) à partir d'un fichi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales