Strucuture accesible depuis n'importe quelle classe?

Résolu
loupiti Messages postés 27 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 20 janvier 2005 - 14 janv. 2005 à 21:33
loupiti Messages postés 27 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 20 janvier 2005 - 15 janv. 2005 à 11:17
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

Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
15 janv. 2005 à 09:12
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!! :-))
3
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
14 janv. 2005 à 22:08
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!! :-))
0
loupiti Messages postés 27 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 20 janvier 2005
15 janv. 2005 à 05:46
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!!

@+
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
15 janv. 2005 à 09:11
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!! :-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
loupiti Messages postés 27 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 20 janvier 2005
15 janv. 2005 à 11:17
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
0
Rejoignez-nous