Strucuture accesible depuis n'importe quelle classe? [Résolu]

Signaler
Messages postés
27
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
20 janvier 2005
-
Messages postés
27
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
20 janvier 2005
-
Bonjour,

je n'arrive pas a définir une seule et même structure accessible depuis toutes les classes de mon projet.

Comment faire?

Je suis sous VC++6 et developpe une sdi

Merci

5 réponses

Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

Euh, dans le code "/* classe 1 (fichier.h) */", je me suis trompé, la variable membre c'est "Class2 class2"...

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

euh, ben je ne sais pas ce qui pose problême...voici un exemple :

typedef struct {

int age;
int nID;

} MYSTRUCT, *LPMYSTRUCT;

class CMyclass {

public:

CMyclass();
virtual ~CMyclass();

MYSTRUCT mystruct;
};

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
Messages postés
27
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
20 janvier 2005

D'accord pour une classe, mais quand t'as plusieurs classes, comment tu fais.?
si je met le typedef dans une classe, les autres classes ne le trouve pas et si je le met dans toutes les classes le compilo me dit que je redefinie la structure!!

@+
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

Ah, j'ai callé ton pb! lol, j'ai eu le même il ya lgt qd g prog des classes! :)
Suffit de bien mettre chaque classe (prototype) dans un fichier .h séparé (et la structure dans un autre) , et leur définition dans un fichier .cpp séparé.
Exemple ac une structure et 2classes :) (jte fé même ça avec un membre de classe qui contient une autre classe!) :)

/* struct.h, contient notre structure... */

#ifndef _STRUCT_H_
#define _STRUCT_H_

typedef struct {

int age;
int nID;

} MYSTRUCT, *LPMYSTRUCT;

#endif

/* classe 1 (fichier.h) */

#ifndef _CLASS1_H_
#define _CLASS1_H_

class CClass2;

class CClass1 {

//instructions
CClass1 c;
MYSTRUCT cstruct;
}

#endif

/* fichier .cpp de cette classe! */

#include <windows.h>
#include "Struct.h"
#include "Class2.h" // contient une autre classe...
#include "Class1.h"

// definitions des fct de classe 1 ici...

voila, suffit de faire pareil avec ton autre classe si tu veux une autre classe! Le compilo râle pour la multidéclaration si tu ne fais pas comme ça! Parce qu'enfait, quand tu fais comme ça (avec plusieurs fichier .cpp linker à un même projet), les fichiers .h (dont celui qui contient la structure) fonctionne comme windows.h! Je veux dire par là, que si tu regardes (ou tu le sais déja), il n'y a pas de multidéclaration de windows.h! et pourtant, il est déclaré plusieurs fois! Mais comme, il ne l'est que une seule fois par fichier .cpp, c'est bon :)
dis moi si ça marche mnt

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
Messages postés
27
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
20 janvier 2005

YESS

Merci beaucoup ca marche, en fait c pas la peine de mette les #include MYSTRUCT.h dans les.cpp

Ciao et bon week end