Bonjour
Je dois réaliser un programme qui permer de dessiner des formes géométriques et d'obtenir le tout sur un fichier bitmap.
Mon programme est fonctionnel, or je pense pouvoir l'optimiser un peu plus en utilisant plus d'héritage. Pour le moment toutes mes formes géomériques héritent de ma classe "Formes".
Mon problème est le suivant , j'ai deux classes : la classe Rectangle , et la classe Carre ( qui comme leur nom l'indiue , me permet de tracer un carre ou un rectangle ); Du fait qu'un carré est un rectangle + spécialisé, je souhaiterai que mon carré soit un héritage du rectangle, mais lorsque que je commence à codé j'obtiens l'erreur suivante "Rectangle n'est pas défini" .
Voici mon code initiale sans l'héritage :
Rectangle.h
Rectangle.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Rectangle: public Formes { public: Rectangle(int _X,int _Y,int _longueur,int _hauteur,string _Couleur,int _Transparence,int _Plan,int _Echelle); virtual ~Rectangle(); void Dessiner(CImage *image); };
_____________________________
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 Rectangle::Rectangle(int _X,int _Y,int _longueur,int _hauteur,string _Couleur,int _Transparence,int _Plan,int _Echelle) { X1=_X; Y1=_Y; X2=_longueur+_X; Y2=_hauteur+_Y; Couleur=_Couleur; Transparence=_Transparence; Plan = _Plan; Echelle = _Echelle; if(X1>X2) Xmax_tmp=(X1*Echelle)+Echelle; else Xmax_tmp=(X2*Echelle)+Echelle; if(Y1>Y2) Ymax_tmp=(Y1*Echelle)+Echelle; else Ymax_tmp=(Y2*Echelle)+Echelle; Find_Xmax(); Find_Ymax(); } void Rectangle::Dessiner(CImage* _image) { image=_image; Droite *Droite_tmp = new Droite(X1,Y1,X1,Y2,Couleur,Transparence,Plan,Echelle); //vertical gauche Droite_tmp->Dessiner(image); Droite_tmp = new Droite(X2,Y1,X2,Y2,Couleur,Transparence,Plan,Echelle); //vertical droite Droite_tmp->Dessiner(image); Droite_tmp = new Droite(X1+1,Y1,X2-1,Y1,Couleur,Transparence,Plan,Echelle); //horizontal haut Droite_tmp->Dessiner(image); Droite_tmp = new Droite(X1+1,Y2,X2-1,Y2,Couleur,Transparence,Plan,Echelle); //horizontal bas Droite_tmp->Dessiner(image); delete Droite_tmp; } Rectangle::~Rectangle() { }
Carre.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 Carre::Carre(int _X,int _Y,int _cote,string _Couleur,int _Transparence,int _Plan,int _Echelle) { X1=_X; Y1=_Y; X2=_cote; Y2=_cote; Couleur=_Couleur; Transparence=_Transparence; Plan=_Plan; Echelle=_Echelle; Xmax_tmp=(_cote+_X)*Echelle; Ymax_tmp=(_cote+_Y)*Echelle; Find_Xmax(); Find_Ymax(); } void Carre::Dessiner(CImage* _image) { image = _image; Rectangle *Rectangle_tmp = new Rectangle(X1,Y1,X2,Y2,Couleur,Transparence,Plan,Echelle); Rectangle_tmp->Dessiner(image) ; delete Rectangle_tmp; } Carre::~Carre(void) { }
Carre.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Carre: public Formes { public: Carre(int _X,int _Y,int _cote,string _Couleur,int _Transparence,int _Plan,int _Echelle); virtual ~Carre(void); void Dessiner(CImage *image); };
Comment puis je réaliser mon carré par un héritage du rectangle ?
Partager