IINCLUDE les header

Signaler
Messages postés
128
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
24 octobre 2006
-
Messages postés
85
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
18 septembre 2005
-
Bonsoir,

j'ai pleins classes, alors dans la normalité je mets la déclaration des attributs et méthodes dans un fichier header .h et la descrption de ces methodes dans un cpp pour chaque classe. + mon main.cpp autre part

je pense que dans chaque cpp de la classe on fait un include de son header. jusqu'ici oké.

mais alors j'ai des classes qui contiennent des attributs d'autres classes (j'ai alors la solution de placer le header de l'autre classe) . Malheuresement l'autre classe contient aussi des attributs de la classe ci-précedement énnoncée. alors le copilateur me dit qu'il y a une redéfinition des methodes. ..

Que je mette les header d'un coté ou de l'autre c'est pareil, ca bloque toujours quelque part. Même en changeant l'ordre ca bloque toujours quelquepart. Alors ya -t il une PLACE miracle, où je pourrais tous les mettre ?

j'étais presque au bout de mon prog . jvé pa ppvoir dormir trankille %-6

3 réponses

Messages postés
85
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
18 septembre 2005

pour que tes définitions soient toujours uniques, tu peux faire comme ça :

fichier .h de la classe classe1 :

#ifndef _CLASSE1_H_
#define _CLASSE1_H_

class classe1
{
...
};

#endif

fichier .h de la classe classe2 :

#ifndef _CLASSE2_H_
#define _CLASSE2_H_

class classe2
{
...
};

#endif

Ca devrait éliminer les problèmes de redéfinitions.

a+
alain
Messages postés
128
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
24 octobre 2006

Le nombre d'erreur est toujours aussi surprenant.

Les includes faudrait les placer ou ?

error C2501 : 'CollectionCompte' : missing storage-class or type specifier

c'est lerreur qui génére toute les autres je pense.

Le truk c'est aucune des classes ne peut êtr placée avant une autre car les types sont tous entrelacés..

?????????
AAAAAAAAAAA Comment faire
Messages postés
85
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
18 septembre 2005

Moi, les include, je les mets tous dans le stdafx.h (ou un autre fichier si je suis sous linux - ou autre que visual), et dans les fichiers .cpp, je mets seulement :

include "stdafx.h"' (ou un autre nom de ficiher).

je ne pense pas qu'il soit possible d'avoir une classe B instanciant des objets de la classe A, et une classe A instanciant des objets de la classe B.

Tu devrais peut-être revoir ton modèle de données pour éviter cela. enfin, je n'ai pas d'autre solution à te proposer.

a+
alain