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 :

[COMPILATION ERROR]types multiples dans une déclaration


Sujet :

C++

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Par défaut [COMPILATION ERROR]types multiples dans une déclaration
    bonjour, depuis un certain temps, j'ai cette erreur que je n'arrive pas a trouvé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    g++ -o ArguLine.o -c ArguLine.cpp -Wall -ansi
    General.hpp:42: erreur: types multiples dans une déclaration
    make: *** [ArguLine.o] Erreur 1
    or a la ligne 42 de general.hpp j'ai ca }; // voir en dessous dans le code

    voici mon fichier General.hpp

    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
     
     
    #ifndef GENERAL_H
    #define GENERAL_H
     
    #include "Singleton.hpp"
    #include <string>
     
    #define STATIC 0
    #define DYNAMIQUE 1
     
    #define GRAHAM 0
    #define JARVIS 1
    #define CHAN  2
     
    #define UNIFORM 0
    #define TOUSSAIN 1
     
     
    class CGeneral: public CSingleton<CGeneral>{
     
        friend class CSingleton<CGeneral>;
     
        public:
            int typealgo ;  //dynamiqye/statique  
            int nline;
            int nboucle;
            int algo;
            bool time;
            bool help;
            int create;
            std::string path;
     
            CGeneral(){
                typealgo = -1;
                nline = -1;
                nboucle = -1; 
                algo = -1;
                time = 0; 
                help = 0;
                path = "";
                create = -1;
                }
    };//ligne 42
     
    #define GENERAL CGeneral::instance()
     
    struct Delete 
    { 
       template <class T> void operator ()(T*& p) const 
       { 
          delete p;
          p = NULL;
       } 
    }; 
     
    struct Print 
    { 
       template <class T> void operator ()(T*& p) const 
       { 
         if (p!=NULL)  p->print();
       } 
    }; 
     
     
    #endif
    et voici la classe arguline(ainsi que cpp)

    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
     
    #ifndef ARGUMENT_LINE_HPP
    #define ARGUMENT_LINE_HPP
     
    #include "Singleton.hpp"
     
    class CArguLine : public CSingleton<CArguLine>{
     
        friend class CSingleton<CArguLine>;
     
        private:
             int CArguLine::changeStringtoN(const std::string& n);
             void CArguLine::printHelp();
             bool CheckArgu();
     
     
        public:    
            bool GetArgu(int argc,char** argv);
            ~CArguLine(){};
     
     
     
     
    }
     
    #endif
    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
    90
    91
    92
     
    #include "ArguLine.hpp"
    #include "General.hpp"
     
    #include <sstream>
     
    bool CArguLine::GetArgu(int argc,char** argv){
     
        for(int i = 1; i <argc; i++){
     
            if(strcmp(argv[i],"-typealgo")==0){
                ++i;
                if(strcmp(argv[i],"Dyn")==0) GENERAL.typealgo = DYNAMIQUE;
                else if(strcmp(argv[i],"Sta" )==0)GENERAL.typealgo = STATIC;   
                else {
                    std::cout << "ERROR: "<< argv[i] << "NON RECONNU" << std::endl;
                    std::cout << "-typealgo peut prendre Dyn ou Stat" << std::endl << std:: endl; 
                    }      
            }        
            if(strcmp(argv[i],"-create")==0){
                  ++i;
                if(strcmp(argv[i],"uniform")==0)                 
                      GENERAL.create = UNIFORM;
                else if(strcmp(argv[i],"toussain" )==0)
                     GENERAL.create = TOUSSAIN;   
                else {
                    std::cout << "ERROR: "<< argv[i] << "NON RECONNU" << std::endl;
                    std::cout << "-create Uniform ou Toussain" << std::endl << std:: endl; 
                    }      
            }
     
            else if(strcmp(argv[i],"-nline")==0)
                GENERAL.nline = changeStringtoN(argv[++i]);
            else if(strcmp(argv[i],"-nboucle")==0)
                GENERAL.nboucle = changeStringtoN(argv[++i]);
            else if(strcmp(argv[i],"-export")==0) 
                GENERAL.path = argv[++i];
            else if(strcmp(argv[i],"-algo")==0){
                  ++i;
                 if(strcmp(argv[i],"graham")==0)GENERAL.algo = GRAHAM;
                 else if(strcmp(argv[i],"jarvis" )==0)GENERAL.algo = JARVIS;   
                 else if(strcmp(argv[i],"chan" )==0)GENERAL.algo = CHAN;   
                 else {
                    std::cout << "ERROR: "<< argv[i] << "NON RECONNU" << std::endl;
                    std::cout << "-algo peut prendre graham,jarvis  ou chan" << std::endl << std::endl; 
                      }
            }else if(strcmp(argv[i],"-time")==0)GENERAL.time = 1 ;
             else if(strcmp(argv[i],"-help")==0){
                GENERAL.help = 1 ;
                printHelp();   
             }    
        }
     
     
         return  CheckArgu();     
    }
     
    void CArguLine::printHelp(){
     
            std::cout << std::cout << "-typealgo Dyn / Stat" << std::endl << std:: endl; 
            std::cout << std::cout << "-nline 100" << std::endl << std:: endl; 
            std::cout << std::cout << "-nboucle 100" << std::endl << std:: endl; 
            std::cout << std::cout << "-export data.txt" << std::endl << std:: endl; 
            std::cout << std::cout << "-algo graham/jarvis/chan" << std::endl << std:: endl; 
            std::cout << std::cout << "-create uniform/toussain" << std::endl << std:: endl; 
            std::cout << std::cout << "-time" << std::endl << std:: endl;
     
     
        }
     
     
    bool CArguLine::CheckArgu(){
     
        if(     GENERAL.typealgo == -1 || GENERAL.nline == -1 || 
                GENERAL.nboucle == -1  || GENERAL.algo == -1 || GENERAL.create == -1 ){
                    printHelp();
                    return false;
                    }           
     
        if( GENERAL.path == "" ) GENERAL.path ="data.txt";    
     
        return true;
        }
     
     
     int CArguLine::changeStringtoN(const std::string& n)
    {    
        std::istringstream iss( n );
        int nombre;
        iss >> nombre;
        return nombre;
    }

    sii qnn pourrai m'eclairer, merci

    a++

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,
    Mon petit doigt me dit que tu as oublié un point virgule à la fin d'une classe ou d'une structure dans le fichier singleton.hpp...

    C'est le coup classique: l'erreur est signalée dans un fichier, alors qu'elle est réellement dans un des fichier inclus
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Par défaut
    j'y'avais pensé mais non.

    m'enfin voici quand meme singleton
    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
     
    #ifndef SINGLETON_H
    #define SINGLETON_H
     
    #include <iostream>
     
    template <class T> class CSingleton{
        public :
     
            static T& instance(){
                if (!Inst)
                    Inst = new T;
                return *Inst;
            }
     
            static void destroy(){
                delete Inst;
                Inst = NULL;
            }
     
        protected :
     
             CSingleton() {}
             ~CSingleton() {}
     
        private :
     
              static T* Inst; 
              CSingleton(CSingleton&){};
              void operator =(CSingleton&){};
    };
     
    template <class T> T* CSingleton<T>::Inst = NULL;
     
     
    #endif

    merci

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    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 394
    Par défaut
    Le point-virgule manquant, il est (ou plus exactement, n'est pas) à la fin de la classe CArguLine...
    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.

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Par défaut
    bon, je pense qu'il est temps d'aller dormir un peu.

    desolé.

    merci

    a++

Discussions similaires

  1. Incompatibilité de type dans une déclaration de worksheets
    Par laurent_42 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/04/2014, 16h32
  2. créer un type hidden dans une fonction javascript
    Par amelhog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/05/2005, 12h17
  3. type void* dans une structure
    Par barbapapaz dans le forum C
    Réponses: 3
    Dernier message: 16/07/2004, 16h11
  4. Champs de type XML dans une base de données
    Par Flocodoupoil dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 07/07/2004, 18h57
  5. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 16h57

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