Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1500 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Organisation des fichiers .cpp .h pour le compilateur

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Organisation des fichiers .cpp .h pour le compilateur

n°398307
chewif
Posté le 18-05-2003 à 12:04:50  profilanswer
 

Jusqu'a present je n ai fait que des petits progs qui se limitaient a un header et a un fichier main.cpp
parfois plusieurs headers chainés (cad en pile)
 
depuis trois jours j essaye de franchir le pas.
j essaye de programmer une fenetre opengl avec un cube dont le deplacement est gere par l utilisateur.
 
Mais voila : apres avoir recupere a travers differents tutos ce dont j avais besoin et en essayant de faire des fichiers
-input.cpp gerant le directx
-main.cpp avec le winmain et le winproc
-opengl.cpp gerant l initialisation de la fenetre
-texture.cpp gerant le chargement des textures
-draw.cpp contenant la boucle principale du jeu
etc....
 
je m y perd.(pas dans la lecture du code mais dans la facon d appeler les fonctions definies ici et la) j en suis  a faire des extern sur tous les prototypes de mes fonctions en debut de chaque cpp.
vc++ m oblige a reorganiser mes fichiers .h au hasard jusqu a ce que ca marche sans quoi j ai des erreurs etranges du genre :
"vous essayez de redefinir le type 'class'"
 
 
D'ou ma question :
Y a t il une facon "academique" d organiser un programme cpp ?


Message édité par chewif le 18-05-2003 à 12:07:37
mood
Publicité
Posté le 18-05-2003 à 12:04:50  profilanswer
 

n°398310
Babouchka
You're no fun anymore
Posté le 18-05-2003 à 12:13:07  profilanswer
 

humm t'as pensé à proteger tes fichiers contre les inclusions mutliples ?
 
A+


Message édité par Babouchka le 18-05-2003 à 12:13:39
n°398312
chewif
Posté le 18-05-2003 à 12:18:57  profilanswer
 

c est a dire?
contre le fait de faire  
#include "fichier1.h" dans le fichier 2
et  
#include "fichier2.h" dans le 1 ?
 
non rien fait de special
j essaye juste d eviter


Message édité par chewif le 18-05-2003 à 12:19:30
n°398315
Babouchka
You're no fun anymore
Posté le 18-05-2003 à 12:21:23  profilanswer
 

ben au debut de chaque fichier .h, tu mets  
 
 

Code :
  1. #ifndef MONFICHIER_H
  2. #define MONFICHIER_H

 
 
et à la fin du fichier tu mets
 
 

Code :
  1. #endif


 
A+


Message édité par Babouchka le 18-05-2003 à 12:21:40
n°398318
chewif
Posté le 18-05-2003 à 12:24:19  profilanswer
 

merci j essayerai ca.
 
cependant il y a toujours la question : comment s organise un programme ?
est-ce que je dois absolument declarer toutes mes classes et structures dans un fichier .h qui sera inclus dans tous les cpp ?

n°398319
Babouchka
You're no fun anymore
Posté le 18-05-2003 à 12:28:28  profilanswer
 

en général oui, m'enfin pour les structures,  si t'as pas besoin qu'elles soient accessibles par d'autres fichiers, t'es pas obligé de les mettre dans un .h
 
A+

n°398949
LeGreg
Posté le 19-05-2003 à 00:22:44  profilanswer
 

chewif a écrit :

merci j essayerai ca.
cependant il y a toujours la question : comment s organise un programme ?
est-ce que je dois absolument declarer toutes mes classes et structures dans un fichier .h qui sera inclus dans tous les cpp ?


 
En principe tu peux mais pour des raisons d'organisations il vaut mieux segmenter les declarations dans plusieurs .h.  
(c'est plus facile a reutiliser quand c'est segmenté et c'est le but d'avoir des .h et des unités .cpp à l'origine)
 
En general il y a un .h pour un .cpp mais tu peux avoir des .h qui auront des utilites speciales (inclure d'autres .h ou faire des forward declarations ou des templates inline.
Dans un projet C++ de base, les fichiers .h sont tres nombreux et pour eviter les inclusions inutiles qui vont ralentir la compilation utiliser tant que possible les forward declarations.
 
Ensuite tu peux aussi envisager de passer aux precompiled headers dont le but est d'accélerer la compilation mais c'est un autre topic.
 
LeGreg

n°398971
chewif
Posté le 19-05-2003 à 01:00:01  profilanswer
 

en effet le un .h pour un .cpp a fini par s imposer.
ca m a pris du temps mais j ai un truc un peu plus propre.
La prochaine fois je reflechirai avant de me jeter directement sur le clavier.
 
merci pour vos reponses.

n°399050
Taz
bisounours-codeur
Posté le 19-05-2003 à 06:31:53  profilanswer
 

Babouchka a écrit :

ben au debut de chaque fichier .h, tu mets  
 
 

Code :
  1. #ifndef MONFICHIER_H
  2. #define MONFICHIER_H

 
 
et à la fin du fichier tu mets
 
 

Code :
  1. #endif


 
A+

euh ça va pas suffire, faut décorer un peu plus, par ce que pensez bien que y forcément un autre couillons ur terre qui aura appeler son ficheir stack.h et si vous pensez pas à ça, vous passerez un muaavis quart d'heure
 
une petite combinaison NomDeFichier / Date / NomDuProjet / Auteur est plus que bienvenue


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Organisation des fichiers .cpp .h pour le compilateur

 

Sujets relatifs
Compilateur + Interface JAVA en freewarefichiers de structures tres problematiques
[PHP] Limite de taille pour l'upload de fichiersRécupérer le nom des fichiers d'un répertoire
bon compilateur 68000?[MFC]Fichiers ini et cast intempestifs
definir les acces aux fichiers[PHP] nombre de fichiers ds un rep...
[OpenGL] importer des fichiers 3d studio maxTester des fichiers dans un répertoire
Plus de sujets relatifs à : Organisation des fichiers .cpp .h pour le compilateur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR