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.