Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : compilation des .h [ Divers / Divers ] (jannoman)

samedi 9 février 2008 à 18:35:41 | compilation des .h

jannoman

Bonjour.
Voila mon probleme : j'ai écrit peut être 6 ou 7 classes différentes dans des fichiers .h (et pas juste les prototypes / déclarations, mais aussi le code) et je n'ai donc aucun *.cpp à part main.cpp où tout au début je fais include #"....h" pour chacun des fichiers.
Ca marche, mais j'aimerais quand meme comprendre ce qu'il faut faire pour que ca marche avec d'un coté le .h et de l'autre le cpp.
Il faut savoir que les .h sont tous plus ou moins reliés, puisqu'il y a des classes virtuelles/interfaces, et d'autres qui dérivent.

Un autre probleme est aussi que j'ai une classe A, dont dérivent B et C, et que B peut avoir besoin de créer des objets C et C des objets B. MAis comme il faut bien faire un include avant l'autre, ca passe pas.

Merci d'avance de me répondre.
A+.
Thomas.

samedi 9 février 2008 à 19:00:10 | Re : compilation des .h

ghuysmans99

Membre Club
Réponse acceptée !
Tout d'abord, il ne faut surtout pas mettre le code dans le .h
Il le mettre dans le .cpp et les définitions (variables, structures (struct & classes), #define & co., ...) dans le .h
Ensuite, dans chaque fichier .cpp qui a besoin de cela, il suffit de faire #include "leh.h" et tout ira bien.
Si tu fais une classe qui hérite d'une autre, même chose : tu inclus le .h de la classe.
J'espère t'avoir éclairé
_______________________________________________________________________
VB.NETis good ...VB6is better

samedi 9 février 2008 à 22:18:29 | Re : compilation des .h

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Pour être précis, les définitions se font dans un .cpp, ce sont les déclarations qui se font dans le .h.
Mais l'inverse est tout a fait possible : on peut mettre du code dans des .h, c'est même nécessaire dans le cas des classes templates, et c'est judicieux pour les méthodes simples qui seront inlinées.
Pour les problèmes de dépendances en les classes B et C, il suffit de juste inclure C.h dans B.cpp et B.h dans C.cpp.
Si tu as besoin de C dans B.h et de B dans C.h, tu peux effectuer une simple déclaration de la classe C dans B.h (ou l'inverse).

_____________________________________
Un éditeur de ressources gratuit pour Windows


dimanche 10 février 2008 à 14:45:51 | Re : compilation des .h

jannoman

Ca marche presque mais c'est quand meme très compliqué à gérer, car le compilateur me crée beaucoup d'erreurs (en fait, aucune erreur à la compilation, mais des erreurs à la phase "build"), en particulier il me dit qu'il y a des redéfinitions de classe.
c'est possible de vous envoyer le code ? il ne reste qu'une erreur impossible à déceler vu qu'elle est là au build mais pas a la compilation
merci
Thomas

dimanche 10 février 2008 à 14:53:37 | Re : compilation des .h

jannoman

ah non finalement c'est bon !
désolé
mais c'est quand meme pas aussi simple que c'est décrit dans les livres, dès qu'on a plusieurs classes imbriquées et que plusieurs classes sont partagées.

en fait, si la classe a nécessite la classe b (même dans les arguments des fonctions) et bien chose étrange, il faut inclure "b.h" dans a.cpp et non pas dans a.h (ce que disait vecchio56)


dimanche 10 février 2008 à 15:08:27 | Re : compilation des .h

vecchio56

Administrateur CodeS-SourceS
Si a.cpp inclut a.h et a.h inclut b.h, c'est pareil que d'inclure b.h dans a.cpp (au problèmes de dépendances près, qui veut rendre impossible certaines inclusions dans les .h)

_____________________________________
Un éditeur de ressources gratuit pour Windows




Cette discussion est classé dans : probleme, fichiers, compilation, classes, cpp


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec ajout de fichiers sur MFC [ par wannalurn ] Bonjourau fait je suis en train de faire une interface MFC dans laquelle je dois inclure des fichiers *.cpp et *.h; les fichiers *.cpp se compilent bi probleme avec string [ par slyfer07 ] Bonjour tout le monde,je débute en C++ et je suis en train de réaliser mon premier projet (j'utilise DevC++). Celui-ci comprend mon main.cpp, ainsi qu Probleme de compilation Qt avec Dev-cpp [ par julien_boss ] Bonjour, bon le probleme n'est pas que je n'arrive absolument pas à compiler Qt avec dev-cpp. Seulement, à la compilation du tutorial n°7 de la docum Prob de déclaration et d'utilisation de variables ds plusieurs fichiers [ par julien_boss ] Bonjour, probleme de débutant mais je séche :/ J'ai mon fichier main.cpp, et deux autres : calc.h et calc.cpp j'inclus dans les 2 fichiers .cpp le fi Compilation OK, Execution NOK [ par fredsor ] Salut a tous, J'ai réalisé un programme en C (win32) sous embedded visual c++, pour un pocket PC, donc windows CE. Cependant, le programme est égaleme les chaines en probleme de compilation [ par flofloo ] bonjour voila une parti d'un code qui me cree des souci je travaille sous devcpp,........scanf("%c",&vcp);if(vcp=="rabat"){prinft("belle ville");}else Probleme de chaine [ par jb212121 ] Bonjour à tous,Je suis en train de faire un petit programme en c et je souhaiterai utilisé un pointeur de caractere mais dev cpp me sort cette erreur probleme compilation opengl [ par nicolovitch ] bonjour a tous, voila mon nouveau probeme, je voudrais utilier la bibliotheque opengl, mais visual C++ m'indique u probleme de compilation, pourkoi MFC ? Problème lors de compilation [ par michmichman ] Bon je vous explique mon probleme qui n'est pas en rapport avec la programmation mais plutot la compilation, j'aimerais utiliser des parties d'un logi HELP ! probleme dans une fct pour compression [ par ryoussef19 ] Bonjour, j'ai un probleme vraiment urgent !voila je cherche une fonction qui me permet de compresser un fichier en un fichier , j'utilise les deux fo


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.