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

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);
};
Rectangle.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
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 ?