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

  FORUM HardWare.fr
  Programmation

  [VC++] Commet gérer un projet avec plusieurs fichiers de code?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++] Commet gérer un projet avec plusieurs fichiers de code?

n°43821
Alload
Posté le 30-06-2001 à 11:04:07  profilanswer
 

Comment est-ce qu'on fait pour écrire un programme en utilisant plusieurs fichiers .cpp  pour par exemple mettre le main dans un fichier, l'initialisation dans un autre, la gestion de quelque chose encore dans un autre, etc... Et qu'on puisse utiliser toutes les fonctions dans tous les fichiers?
 
Merci.

mood
Publicité
Posté le 30-06-2001 à 11:04:07  profilanswer
 

n°43825
__Lolo__
C'est pouleversant !
Posté le 30-06-2001 à 11:32:42  profilanswer
 

ds un .h tu mets les en-têtes des fonctions que tu mettras ds le .cpp correspondant
apres dans les .cpp tu fais des include des .h nécessaires
 
enfin ca c pr une utilisation tres basique, ca doit etre plus fin et "réglementé"


---------------

n°43883
janoscoder
Posté le 01-07-2001 à 02:05:19  profilanswer
 

Passer en plusieurs fichiers nécessite d'être très propre.
 
Déjà, en Visual, il faut rajouter les fichiers sources au projet, avec la fonction appropriée dans les menus.
 
Ensuite, y'a deux choses qui posent problème : les données statiques, et les inclusions multiples, voires récursives. Il y donc deux choses à noter pour que les choses soient bien faîtes:
 
Il faut limiter les données statiques, et les définir une fois dans un fichier .cpp
 
exemple: (imaginons qu'on veuille faire un shoot'em up  :)  
 
fichiermain.cpp
**********************
#include "MoteurJeu.h"
#include "MoteurAffichage.h"
#include <fstream>
using namespace std;
 
ofstream globaldebugfile;
 
void main()
{
   globaldebugfile.open("debug.log" );
   globaldebugfile << "Jeu lancé" << endl;
   MoteurAffichage mdisp;
   MoteurJeu mgame;
   mgame.SetRenderer(mdisp);
   while(true)
   {
     if (mgame.end())
       break;  
     mgame.OneFrame();
   }
}
 
*******************************
 
fichier MoteurJeu.h
 
********************************
//MoteurJeu.h
//
 
#ifndef __MoteurJeu_h__
#define __MoteurJeu_h__       //ceci assure que le fichier .h ne sera pas include plus d'une fois par accident. C'est la bonne manière de procéder, et les header standard l'utilisent. Ne pas oublier le #endif à la fin du fichier
 
class ObjetJeu
{...};
 
class vaisseau: public ObjetJeu
{...};
 
...
 
#endif //__MoteurJeu_h__ <- un petit commentaire pour rappeler à quoi se rattache le #endif
 
***********************************
 
 
fichier MoteurAffichage.h
********************************
//MoteurAffichage.h
 
#ifndef __MoteurAffichage_h__
#define __MoteurAffichage_h__
 
#include "MoteurJeu.h"  //ne crée pas d'inclusion récursive grâce au #ifndef
 
class Renderer...
 
class MoteurAffichage: public Renderer...
 
 
#endif //__MoteurAffichage_h__
 
**************************************
 
fichier MoteurJeu.cpp
*****************************************
#include "MoteurJeu.h"
 
extern ofstream globaldebugfile; //extern pour dire que l'on ne définit pas, mais que l'on rappelle qu'il existe déjà un objet dans un autre fichier qui s'appelle globaldebugfile
 
...//du code
 
 
 
 
 
 
 
 
**************************************
 
 
fichier "MoteurAffichage.h"
***********************
 
#include "MoteurAffichage.h"
#include "MoteurJeu.h"
 
...//du code
 
*****************************


---------------
-----------------------
n°43884
janoscoder
Posté le 01-07-2001 à 02:11:11  profilanswer
 

sinon, il faut mettre le moins de classes que possible par fichier .cpp, histoire de rendre les choses plus lisibles. C'est chiant d'avoir à parcourir un fichier de 3000 lignes.
Mieux vaut avoir 100 fichiers simples.
 
Ensuite, il faut éviter les #include inutiles. C'est chiant par la suite auqnd on veut réutiliser le code. On pense qu'il y a des dépendances (alors qu'elles n'extistent pas en réalité)
 
Nommer le fichier par le nom de la classe principale du fichier n'est pas une mauvaise idée.
 
Ensuite, il faut se fixer des conventions de codage, ie, on indente de telle manière, les variables locales en minuscules, les noms de type avec une majuscule au début de chaque mot sans underscore, les constantes tout en majuscules avec underscores entre les mots...
Ces conventions de codage rendent le code bcp+ lisible.
 
Enfin, les classes avec templates doivent mettre tout le code dans le .h, pour des raisons évidantes. gcc permet de les inclure une fois seulement en objet pour gagner de la place.


---------------
-----------------------

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

  [VC++] Commet gérer un projet avec plusieurs fichiers de code?

 

Sujets relatifs
[C++] Peut-on précompiler des bouts de code?Qui pourrais me faire ce code en javascript ?
Quel code permet d'obtenir ca?[Visual C++ 6] importer une dll ds un projet
Besoin pour modifier un code Javascript!javascript gerer la soumission d'un formulaire
[Visual C++] Dans un projet SDI, problème de changement de vueFORM : preciser un formulaire dans une page qui en contient plusieurs?
[C++] Comment gérer les collisions avec les décors dans un jeu?fonction php qui converti un chaine en code ascII
Plus de sujets relatifs à : [VC++] Commet gérer un projet avec plusieurs fichiers de code?


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