Partage
  • Partager sur Facebook
  • Partager sur Twitter

semicolon missing after declaration of

Sujet résolu
    1 août 2007 à 11:59:49

    Salut,
    j'ai ces erreurs

    Modulecvode.h:22: error: semicolon missing after declaration of `Getf'
    Modulecvode.h:71: error: multiple types in one declaration

    dans le code suivant

    #ifndef __MODULECVODE
    #define __MODULECVODE
    #pragma once

    #include "sundialstypes.h"
    #include "cvode.h"
    #include "cvdense.h"
    #include "nvector_serial.h"
    #include "dense.h"

    #include "states_index.h"
    #include "Update.h"
    #include "Getf.h" 

    // Classe qui permet l'utilisation de CVODE


    class Modulecvode // erreur de la ligne 22
    {
            private :
                            realtype _ropt[OPT_SIZE];
                            realtype _reltol;
                            realtype _abstol;
                            double _delta_t;
                            double _step_min;
                            double _step_max;
                            double _tab_F[200];
                            M_Env _MachEnv;
                            int _statesize;
                            N_Vector _cvode_y;
                            N_Vector _ew;
                            long int _iopt[OPT_SIZE];
                            double _errweight[200];
                            void* _cvode_mem;
                            int _flag;
                            double _start_time;
                            double _cvode_t;
                            double _h;
                            int _timenow;
                            Update der;
                            Getf var;
           
            public :
                            void CVode_f(int N, double time, N_Vector y, N_Vector ydot, void *f_data);
                           
                            void CVodeInit_serial(double states[],double tstep);
                           
                            void CVode_run(double h,double states[]);
                           
                            void compute(double states[], double tstep);
                           
                            void CVodeExit(void);
                           
                            double max(const double x,const double y);
                           
                            double min(const double x,const double y);
                           
                            void Setup(const double t,const double step);
                           
                            void func_f(long N, realtype time, N_Vector y, N_Vector ydot, void *f_data);
    }; // erreur de la ligne 71

    #endif
     

    mais je ne vois pas pourquoi il faudrait mettre un point-virgule, ni où. En plus je fais une déclaration par ligne, donc je ne vois pa comment il peut y avoir plusieurs types pour une seule déclaration !!
    Donc, voilà si quelqu'un a une idée !!
    • Partager sur Facebook
    • Partager sur Twitter
      1 août 2007 à 12:14:12

      Salut.

      Pourquoi faire un #pragma once puisque tu met déjà un garde fou pour les inclusions multiples ?

      Sinon tu devrais éviter les _ devant les noms d'attributs, le problème vient peut être de là.
      • Partager sur Facebook
      • Partager sur Twitter
        1 août 2007 à 12:40:38

        Pour le pragma once il parait qu'en C++ les #ifndef __MODULECVODE
        #define __MODULECVODE
        ne sont pas toujours pris en compte et qu'il valait mieux mettre les 2 pour être sûr que ça serve. Apparemment ça dépend du compilateur.
        Je vais essayer pour les attributs.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          1 août 2007 à 13:18:15

          Montre nous Getf.h pour l'erreur de la ligne 22.
          • Partager sur Facebook
          • Partager sur Twitter
            1 août 2007 à 14:16:29

            C'est bon j'ai trouvé l'erreur, c'était un truc tout bête !! J'avais oublié de mettre un point-virgule après la déclaration d'une classe (Getf) que j'avais inclu à la classe Modulecvode. Voilà !!
            • Partager sur Facebook
            • Partager sur Twitter

            semicolon missing after declaration of

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown