Bonjour,
j'ai un probléme d'heritage que je ne comprends pas :
(jutilise la librairie CMU )
Voici ma classe de base :
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
41
42
43
44
45
46
47
48
49
50
51
52
53 // objet_graphique.h #ifndef objet_graphique_h #define objet_graphique_h #include "CMUgraphics M.h" class objet_graphique { public: objet_graphique(int _x, int _y, window& _pt_fenetre, color _couleur) : x(_x),y(_y), pt_fenetre(_pt_fenetre), couleur(_couleur) {} virtual ~objet_graphique() {} // surchargé dans classes dérivées pour effacer figures // deplace un objet p/r à son centre (x,y) virtual void deplace(int dx, int dy); virtual void affiche() = 0; virtual void cache() = 0; int getx() {return x;} int gety() {return y;} protected : int x,y; window& pt_fenetre; color couleur; void calcul_nouvelles_coordonnees(int dx, int dy); }; #endif
ma classe "herité " :
et voici mon appel :
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 CERCLE_H #define CERCLE_H #include "objet_graphique.h" class cercle :public objet_graphique{ public : cercle(int x, int y, int z ,window& windows, color couleur ) ; ~cercle(); void affiche(); void expansion(int indice ); void contraction(int indice); protected : int rayon; int centre_X; int centre_Y; }; #endif
je précise que je n'ai implémenté aucune methode (); ( l'erreur n'est apparemment pas lié a cela du moins je ne pense pas )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cercle* C = new cercle(100,130,50, fenetre, BLUE);
De plus apparemment l'erreur vient de l'heritage proprement dis :
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 : error C2512: 'objet_graphique' : no appropriate default constructor available : error C2259: 'cercle' : cannot instantiate abstract class due to following members: : see declaration of 'cercle' : see declaration of 'cache' : error C2259: 'cercle' : cannot instantiate abstract class due to following members:
Partager