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 :

Erreur expected ';' before '(' token" que je n'arrive pas à résoudre


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Erreur expected ';' before '(' token" que je n'arrive pas à résoudre
    Bonjour,
    J'ai le même problème que cette discussion.
    Je n'ai en effet pas su le corriger car je ne pense pas pouvoir retirer mes includes.

    Je présente mon programme: j'essaye de générer des fractales (en l'occurence Mandelbrot, julia et le buddhabrot).
    Pour cela, j'ai une classe mère (fractale), 2 sous classes ( MandelJul et Buddhabrot) et deux sous classe qui découlent de MandelJul: Mandelbrot et Julia.

    Voici les .h qui posent problème ainsi que le journal de la compilation:

    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
    #ifndef Fractale_H
    #define Fractale_H
    #include <SDL.h>
     
    class Fractale{
     
        protected:
        SDL_Surface screen;
        int abs,ord,rayon,iter;
        double zoom;
     
        public:
        Fractale(SDL_Surface,int,int,int,double,int);
     
        SDL_Surface getScreen(void);
        int getAbs(void);
        int getOrd(void);
        int getRayon(void);
        int getIter(void);
        double getZoom(void);
     
        void setScreen(SDL_Surface);
        void setAbs(int);
        void setIter(int);
        void setOrd(int);
        void setRayon(int);
        void setZoom(double);
    };
     
    #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
    #ifndef MandelJul
    #define MandelJul
     
    #include "Fractale.h"
    #include <SDL.h>
    #include "Complexe.h"
     
    class MandelJul : public Fractale
    {
    public:
        MandelJul(SDL_Surface, int , int ,int , double ,int );
        int dessine(Complexe);
        int calcule();
    };
     
    #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
    #ifndef Julia
    #define Julia
    #include "MandelJul.h"
    #include <SDL.h>
    #include "Complexe.h"
     
    class Julia : public MandelJul
    {
        protected:
        Complexe jul;
     
        public:
        Julia(SDL_Surface, int , int ,int , double ,int ,Complexe);
        int dessine();
        Complexe getJul(void);
        void setJul(Complexe);
    };
    #endif

    Compiling: Fractale.cpp
    Compiling: Julia.cpp
    In file included from C:\C++\GenFractales\MandelJul.h:5,
    from C:\C++\GenFractales\Julia.h:3,
    from C:\C++\GenFractales\Julia.cpp:2:
    C:\C++\GenFractales\Complexe.h:40:15: warning: multi-character character constant
    In file included from C:\C++\GenFractales\Julia.h:3,
    from C:\C++\GenFractales\Julia.cpp:2:
    C:\C++\GenFractales\MandelJul.h:10: error: expected `)' before ',' token
    C:\C++\GenFractales\MandelJul.h:8: error: base `Fractale' with only non-default constructor in class without a constructor
    C:\C++\GenFractales\MandelJul.h:8: error: an anonymous union cannot have function members
    C:\C++\GenFractales\MandelJul.h:13: error: abstract declarator `<anonymous class>' used as declaration
    In file included from C:\C++\GenFractales\Julia.cpp:2:
    C:\C++\GenFractales\Julia.h:8: error: expected class-name before '{' token
    C:\C++\GenFractales\Julia.h:13: error: expected `)' before ',' token
    C:\C++\GenFractales\Julia.h:8: error: an anonymous union cannot have function members
    C:\C++\GenFractales\Julia.h:10: error: member Complexe <anonymous class>::jul' with constructor not allowed in anonymous aggregate
    C:\C++\GenFractales\Julia.h:10: error: member Complexe <anonymous class>::jul' with copy assignment operator not allowed in anonymous aggregate
    C:\C++\GenFractales\Julia.h:17: error: abstract declarator `<anonymous class>' used as declaration
    C:\C++\GenFractales\Julia.cpp:6: error: expected id-expression before '(' token
    C:\C++\GenFractales\Julia.cpp:6: error: ISO C++ forbids declaration of `type name' with no type
    C:\C++\GenFractales\Julia.cpp:6: error: abstract declarator `int ()(SDL_Surface, int, int, int, double, int, Complexe)' used as declaration
    C:\C++\GenFractales\Julia.cpp:6: error: invalid function declaration
    C:\C++\GenFractales\Julia.cpp:11: error: ISO C++ forbids declaration of `getJul' with no type
    C:\C++\GenFractales\Julia.cpp:11: error: no `int Complexe::getJul()' member function declared in class `Complexe'
    C:\C++\GenFractales\Julia.cpp: In member function `int Complexe::getJul()':
    C:\C++\GenFractales\Julia.cpp:12: error: 'class Complexe' has no member named 'jul'
    C:\C++\GenFractales\Julia.cpp: At global scope:
    C:\C++\GenFractales\Julia.cpp:15: error: explicit qualification in declaration of `void setJul(Complexe)'
    C:\C++\GenFractales\Julia.cpp: In function `void setJul(Complexe)':
    C:\C++\GenFractales\Julia.cpp:16: error: `jul' was not declared in this scope
    C:\C++\GenFractales\Julia.cpp:16: warning: unused variable 'jul'
    C:\C++\GenFractales\Julia.cpp: At global scope:
    C:\C++\GenFractales\Julia.cpp:20: error: explicit qualification in declaration of `int dessine()'
    C:\C++\GenFractales\Julia.cpp: In function `int dessine()':
    C:\C++\GenFractales\Julia.cpp:21: error: `jul' was not declared in this scope
    C:\C++\GenFractales\Julia.cpp:21: warning: unused variable 'jul'
    Process terminated with status 1 (0 minutes, 1 seconds)
    21 errors, 3 warnings
    Merci beaucoup de votre aide.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Points : 23
    Points
    23
    Par défaut Une piste
    #ifndef Julia
    #define Julia
    class Julia : public MandelJul

    Je ne sais pas ce qu'en pense ton compilateur, mais à ta place j'éviterais d'utiliser un nom de classe dans un #define
    Essaye en modifiant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #ifndef Julia
    #define Julia
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #ifndef Julia_h
    #define Julia_h

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par AlexG34 Voir le message
    #ifndef Julia
    #define Julia
    class Julia : public MandelJul
    C'est pas faux
    Idem pour MandelJul ... et probablement pour tous les fichiers que tu as créés par copier/coller...

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci bcp. C'était effectivement le cas..

    Mais du coup le compilateur m'emmerde sur le 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
    27
    28
    29
    30
    31
    32
     
    #include "MandelJul.h"
    #include <SDL.h>
    #include "Complexe.h"
    #include "coloration.h"
     
     
    MandelJul::MandelJul(SDL_Surface screen, int abs, int ord,int rayon, double zoom,int iter):Fractale(screen, abs, ord, rayon, zoom, iter) {}
     
    int MandelJul::dessine(Complexe jul(0,0))
    {
    	int x,y;
    	for(x=0 ; x<560 ; x++)
    		for(y=0 ; y<(480) ; y++)
    			*((Uint32*)(screen->pixels) + x+ y *screen->w)
    			= calcule( Complexe((double)abs/200 + ((double)x-min(rayon,430))/(200*zoom), (double)ord/200 + ((double)y-min(rayon,240))/(200*zoom)) ,iter , jul );
     
    	for(x=560 ; x<640 ; x++)
    		for(y=0 ; y<480 ; y++)
    			*((Uint32*)(screen->pixels) + x + y * screen->w)= rgb(0,0,0);
    	return 0;
    }
     
    int MandelJul::calcule(Complexe z(0,0),int iter, Complexe jul(0,0))
    {
        int m;
        for(m=0 ; m<=iter && sqrt(sqr(z.x)+sqr(z.y))<=2  ; m+=1)
    		z = z*z + jul;
        if (m <= iter)
    		return hsv(255-m*8,255,255);
        return 0;
    }

    erreur:
    C:\C++\GenFractales\MandelJul.cpp:10: error: expected `,' or `...' before '(' token


    Merci

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Citation Envoyé par Kriegger Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int MandelJul::dessine(Complexe jul(0,0))
    {
    Cette syntaxe est incorrecte. Une valeur par défaut peut être précisée dans la déclaration :
    .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class MandelJul
    {
       int dessine(Complexe jul = Complexe(0,0));
    }
    Et dans le .cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int MandelJul::dessine(Complexe jul)
    {

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup. C'est ce que j'avais remarqué en modifiant certaines choses aléatoirement.
    Merci bcp !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/08/2011, 09h22
  2. erreur: expected ‘)’ before ‘*’ token
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 12/10/2010, 21h24
  3. Réponses: 2
    Dernier message: 22/01/2009, 16h29
  4. Message d'erreur que je n'arrive pas à résoudre
    Par MAMIKA dans le forum MATLAB
    Réponses: 5
    Dernier message: 15/09/2008, 13h17
  5. Réponses: 4
    Dernier message: 14/09/2007, 17h14

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