IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

diviser son code


Sujet :

C++

Vue hybride

lord anubis diviser son code 26/06/2006, 22h22
xxiemeciel Salut, je crois qu'il y a... 26/06/2006, 22h53
Médinoc LE FOUET!!! Répète après moi... 26/06/2006, 23h07
xxiemeciel ahah oui j'avoue c'est tres... 27/06/2006, 01h34
JolyLoic Normalement, d'après Astérix... 27/06/2006, 02h21
doudoustephane d'ou le'rreur peut-etre... 26/06/2006, 23h07
Invité J'espère que ce n'est pas un... 28/06/2006, 15h26
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de lord anubis
    Inscrit en
    Février 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Février 2006
    Messages : 114
    Par défaut diviser son code
    Salut, j'aimerais partionner le code de mon projet, qui atteint les 3000 lignes, en créant plusieurs .cpp.
    seulement, je n'y arrive pas.
    J'aimerais savoir ce qu'il faut faire si mes cariables sont utilisées dans plusieurs .cpp, et où les déclarer en générale?
    Ensuite, j'ai en ce moment un pb:

    multiple definition of "..."
    first defined here

    Je comprends pas où est le pb

    Ce que j'ai fais:

    J'ai créé un fichier librairies.h, avec toutes mes variables, tout les bitmaps,...
    Ensuite, j'ai créé mon fichier combat.cpp, enlévé de main.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    #ifndef librairies_h  // si FICHIER_H n'est pas défini 
    #define librairies_h // on le défini 
     
     
    //déclaration des librairies utilisées
    #include <allegro.h>
    #include <ctime>
    #include <fstream>
     
    using namespace::std;
     
    //déclaration des librairies utilisées
    #include <allegro.h>
    #include <ctime>
    #include <fstream>
     
    using namespace::std;
    //Déclaration des image, en tant que bitmap
    BITMAP*fond;
    BITMAP*souris;
    ........
    int nBonus2();
    int nAbonus;
    int nbrpVie;
     
     
    #endif
     
     
     
     
    Le .cpp:
     
     
     
     
    #ifndef combat_cpp  // si FICHIER_H n'est pas défini 
    #define combat_cpp // on le défini 
     
     
     
     
    // on le défini 
    #include "librairies.h"
     
    using namespace::std;
     
     
     
    int fCombat (int nMobs) 
    {
     
       if ( nVie <= 0)
       {
     
     
                        }
    nJeu = 0;         
    }
     
     
    #endif
     
     
     
     
    MAIN:
     
    /*Monster Safari II
    jeu d'action basé sur le point&clic*/
     
     
     
    #include "librairies.h"
    #include "combat.cpp"
     
    using namespace std;
     
    //Déclaration des variables utilisées lors du programme
     
     
     
     
     
     
    int main()
    {
    ...................
    }

    Voilà, je bloque vraiment, j'ai régardé tout les tutos que j'ai vue, je n'ai rien trouvé, alors si vous avez une solution, je prends .


    Merci d'avance.



    @+

  2. #2
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Salut,

    je crois qu'il y a des erreurs de copier/coller dans ton message, plusieurs includes identiques dans le .h par exemple. Et il n'est pas necessaire de faire le #ifdef #define dans le .cpp.

    puis avec le peu d'information que tu donnes on peut pas dire grand choses d'autre, les noms des variables qui pourraient eventuellement etre definies plusieurs fois par exemple.

    tu n'as pas besoin d'appeler using namespace std; autant de fois, une seul fois dans le .h suffit.

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    tu n'as pas besoin d'appeler using namespace std; autant de fois, une seul fois dans le .h suffit.
    LE FOUET!!!
    Répète après moi (en rythme avec le fouet)
    On-ne-met-pas-de-u-sing-name-space-dans-un-point-h :
    U-ni-que-ment-dans-les-point-c-p-p.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Citation Envoyé par Médinoc
    LE FOUET!!!
    Répète après moi (en rythme avec le fouet)
    On-ne-met-pas-de-u-sing-name-space-dans-un-point-h :
    U-ni-que-ment-dans-les-point-c-p-p.
    ahah oui j'avoue c'est tres vrai, mais rien n'empeche de le mettre dans le header file si tu es sure que tu n'auras pas de conflit avec tes noms.

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Normalement, d'après Astérix chez les Helvètes, le fouet , c'est ce qui vient après le bâton, et donc dans ton cas il ne reste que la dernière étape :

    Dans le lac avec une pierre aux pieds !!


    Le problème n'est pas tant que tu sais ce que tu fais avec tes propres conflits de nom. Pour ça, tu est assez grand pour faire comme tu souhaites dans tes .cpp.

    Le problème, c'est qu'en faisant ça, tu impose des choses, à savoir que aucun des utilisateurs de tes .h n'aura de conflit, y compris ceux que tu n'as jamais rencontrés (comme par exemple toi dans 1 semaine).

    Et là, c'est présomptueux.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  6. #6
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Je sais lol vous prechez un convaincu, ca m'apprendra a etre trop feignant pour ecrire mes posts

  7. #7
    Membre éprouvé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Par défaut
    Citation Envoyé par xxiemeciel
    Salut,

    je crois qu'il y a des erreurs de copier/coller dans ton message, plusieurs includes identiques dans le .h par exemple.
    d'ou le'rreur peut-etre...

  8. #8
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par lord anubis
    Salut, j'aimerais partionner le code de mon projet, qui atteint les 3000 lignes, en créant plusieurs .cpp.
    seulement, je n'y arrive pas.
    J'espère que ce n'est pas un projet professionel car cela montre une lacune énorme d'analyse....

Discussions similaires

  1. Comment bien déboguer son code ?
    Par D[r]eadLock dans le forum Débuter
    Réponses: 47
    Dernier message: 02/04/2024, 16h06
  2. Diviser son code en plusieurs fichiers ?
    Par tintin72 dans le forum jQuery
    Réponses: 4
    Dernier message: 13/09/2013, 16h02
  3. Passer son code du C en C++
    Par Mynautor dans le forum OpenGL
    Réponses: 4
    Dernier message: 07/02/2005, 03h14
  4. Propriété de son code source.
    Par chocobn49 dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 06/07/2004, 14h40
  5. [mise en page] pour bien indenter son code
    Par bihorece dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/08/2003, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo