L'héritage      

Exemple:
 

On peut considérer qu'un cercle consiste en la donnée d'un point (le centre) et d'un rayon. Donc un cercle est un point, plus certaines propriétés supplémentaires. Nous allons donc construire une classe Cercle qui hérite de la classe Point (dénoté par une flèche de Cercle vers Point).
 
 
 


 
 
 
 
 
 
 
 
 

mettre protected devant x et y dans la classe point : lisible seulement par les classes qui héritent de Point.
 
 
 
 

#include <cmath>

class Cercle : public Point {

// l'héritage est public, ce qui signifie que les droits d'accés de Point sont conservés.

protected :
float rayon;

public :

Cercle() : Point() { rayon=1; }

Cercle( float x, float y, float r) : Point(x,y)  { rayon=r; }

Cercle( Cercle &c) : Point(c.x,c.y) { rayon=c.rayon;}

~Cercle() {}

float surface( ) { float pi=4*atan(1); return pi*rayon*rayon; }
 

} ;
 
 
 

Il faut noter que les méthodes de Point sont directement héritées; par exemple, sans avoir rien programmé au niveau de la classe Cercle, on peut faire:
 

Cercle c;
c.translate(1.0,2.0);
 

et ça marche, puisque ça translate le centre du cercle sans toucher au rayon.
 

Naturellement, on pourrait si cela s'avérait nécessaire redéfinir dans Cercle des méthodes de Point.
 
 

Drupal 7 Appliance - Powered by TurnKey Linux