loupiti
Messages postés27Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention20 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!!
Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 20112 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