Bonjour,
J'aimerais avoir quelques indications concernant l'h�ritage.
J'ai fait une classe Point qui mod�lise un point du plan :
Et je voudrais faire maintenant une classe Vecteur3D qui h�rite de la classe Point. Voici ce que j'ai fait pour l'instant :
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 class Point{ protected: double x,y; public: Point(double a=0., double b=0.) { x=a; y=b; } Point( const Point & a) { x=a.x; y=a.y; } Point & operator =( const Point & a) { x=a.x; y=a.y; return * this; } Point& deplace(double dx, double dy) { x=x+dx; y=y+dy; return *this; } };
Je voudrais maintenant impl�menter une m�thode "deplace" qui permette de d�placer un vecteur selon le m�me principe que la m�thode deplace() de la classe Point.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 class Vecteur3D : public Point { protected : double z; public: Vecteur3D( double a=0, double b=0, double c=0 ){ x=a; y=b; z=c; } };
Pour cela j'ai fait la m�thode suivante :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 Vecteur3D& deplace(double dx, double dy, double dz) { Point::deplace(dx,dy); z=z+dz; return *this; }
Ce code compile et marche correctement.
Mais je me demande si c'est bien comme cela qu'il faut faire, et aussi je comprends pas pourquoi j'ai pas d'erreur de comilation si j'�cris simplement :
( j'ai enlev� le "*this" )
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 Vecteur3D& deplace(double dx, double dy, double dz) { Point::deplace(dx,dy); z=z+dz; }
Merci.
Partager