begin process at 2010 02 10 11:40:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Classe et fichier.h


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

Classe et fichier.h

jeudi 5 février 2009 à 11:28:35 | Classe et fichier.h

Daemonight

Bonjour à tous !
j'ai un petit soucis de... disons... méthode. Dans l'intitulé, c'est relativement simple :
J'ai un programme qui utilise plusieurs classes différentes. On va dire trois : la A, la B, et la C.
Chacune de ces classes est "décrite" grâce à deux fichiers : un .h et un .cpp
j'ai donc 6 fichier :
A.h, A.cpp, B.h, B.cpp, C.h, C.cpp
Les cpp contiennent toutes les méthodes des classes correspondantes, et les .h les déclarations et méthodes et propriétés
Voila pour les classes.

Au delà de tout ça, j'ai un fichier header.h, qui contient l'ensemble des ressources nécessaires à mon programme, de type :
les struct communes susceptibles d'être utilisées par mes méthodes de classes ou mon main
les constantes (#define) utilisées aussi par mes méthodes de classe ou mon main
les bibliothèques (iostream, math, time, tout ça tout ça...)

A la base, j'ai bien sûr un main.cpp.

Le problème, c'est les includes. Où est-ce que j'inclue quoi ? Je m'explique :

Chaque X.cpp doit inclure le X.h correspondant, c'est logique.
Chaque X.h doit avoir accès au header, pour les biblio, les constantes, les struct...
Chaque X.h doit avoir accès aux autres X.h : la classe A peut très bien posséder des objets de types B, ou C, pareil pour la B et la C
Enfin le main doit avoir accès à tout...

Le soucis, c'est que je me tape à la compilation des "redifinition of ..." à la pelle, évidemment, parce que main inclue header, mais inclue aussi A qui inclue header... bref, je m'en sort pas. Je ne peux évidemment pas non plus inclure tout les .h dans mon header et n'inclure que mon header dans chacun des .cpp et autres .h, car A.h va inclure header.h, qui inclue A.h, qui inclue header.h ... et là, c'est le compilo qui ne s'en sort pas !

Il y a bien une solution qui consiste à cinder tous les *.h en un seul, mais est-ce l'unique moyen de s'en sortir ? j'aurai voulu au maximum conserver cette "compartimentation".

Si jamais quelqu'un à une lumineuse idée ... Merci !

<----------------------------------------------->
On reconnait un bon developpeur au baobab qu'il a dans la main...
jeudi 5 février 2009 à 12:07:35 | Re : Classe et fichier.h

buno

Réponse acceptée !
Hello,
Une solution est d'encadrer tes headers avec une définition de constante:

#ifndef MONFICHIER_H
#define MONFICHIER_H

....
ici le contenu de ton fichier
...

#endif

On comprend bien qu'il ne sera inclus qu'une seule fois. En effet, lors du "2nd passage", la constante MONFICHIER_H (tu peux mettre ce que tu veux) sera défini et donc le contenu du fichier ne sera pas reparcouru...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
jeudi 5 février 2009 à 21:49:15 | Re : Classe et fichier.h

Daemonight


impeccable ! un grand merci, tout se passe pour le mieux
<----------------------------------------------->
On reconnait un bon developpeur au baobab qu'il a dans la main...


Cette discussion est classée dans : classe, header, classes, cpp, inclue


Répondre à ce message

Sujets en rapport avec ce message

iINCLUDE les header [ par psycomel ] 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 c Visual Cpp [ par Bringdal ] Voila... mon probleme est simpleje n'arrive pas à afficher un executable j'ai ajouté une variable privé de type CXXXSocket classe vector sous DEV C++ [ par briscard ] Salut a tous!ma classe vector ne marche pas sous DEV C++, et j'ai une erreur de ce type:2 C:\DEV-CPP\include\c++\backward\backward_warning.h:32#warnin probleme creation dll de classe [ par juju cogne ] Voila j'ai codé une classe (.h et cpp) et je voudrais passer cette classe avec ses méthodes ainsi que les méthodes globales de cette application dans Aide avec borland et 2 classes [ par cgarbite ] Developpeur_Fou Salut Voila j utilise Borland C++ Il y a la classe TForm1 qui se crée automatiquement. J ai crée le classe ELEVE avec une fo problème de compilation sous visual c++ 6 [ par glog ] voila , j'ai un petit problème pour compiler un projet . c'est une application générée par le AppWizard du SDK directX9 , mais notez que le problèmme Appel de fonction [ par amauro ] Bonjour à tous!Bonjour à tous!J'aimerais appeller une fonction que j'ai crée moi-même dans la classe View.cpp de mon application MDI depuis la classe Ecrire des instances dans un fichier [ par Eclipz ] bonjour.voila, je debut en cpp et j'ai un léger problème.bon, mon petit prog comporte 3 classes. l 1re nommée "classe" contient un tableau instance de générer le diagramme de classe avec les .h et .cpp [ par Rastapopoulos ] bonjour.j'ai terminé mon projet en c++ et pour mon rapport, je suis à la recherche d'un logiciel générant automatiquement le diagramme de classe à l'a INSTANCIER UNE CLASSE D'UNE DLL [ par KL ] Bonjour,J'ai un enorme problème !J'ai créé une DLL avec des classes dedansMaintenant je veux pouvoir importer ces classes dans un prog Win32 et pouvoi


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,983 sec (3)

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