Formation héritage, tutoriel & guide de travaux pratiques en pdf.
L’héritage simple
Héritage simple : classe dérivée
A partir d’une classe A, on définit une nouvelle classe dérivée B A est la classe de base B est la classe dérivée de A.
La classe dérivée B hérite de tous les membres de A (données ou fonctions) peut ajouter de nouveaux membres (données ou fonctions) peut redéfinir des membres existants dans A (données ou fonctions).
class Point // classe de base { int x, y; public : Point( int abs = 0 , int ord = 0 ) { x = abs; y = ord ; } void affiche( ); void deplace( int, int ); … } ;
class PointColore : public Point // classe dérivée publiquement { int couleur; // attribut supplémentaire public : PointColore( int abs = 0 , int ord = 0 , int col = 0 ) ; // nouveau constructeur void affiche( ); // rédéfinition de la fonction … } ;
Par dérivation la classe dérivée récupère tous les membres de la classe de base sauf les constructeurs, le destructeur et l’opérateur =.
On peut dériver de nouveau à partir de la classe dérivée etc….
3 types de dérivations possibles : publique, protégée ou privée
Statuts d’accès dans une classe de base (rappel)
spécificateur d’accès : Public : les membres publics de la classe sont accessibles dans la classe et à l’extérieur de la classe. Private : les membres privés d’un objet ne sont accessibles qu’à l’intérieur de la classe par les objets de la classe ( les fonctions membres de la classe ).
Nouveau statut : protected
Private et Protected :
A l’extérieur de la classe : private et protected sont équivalents, les membres sont toujours inaccessibles.
Seul un objet de la classe a accès aux membres privés et protégés (données ou fonctions) de sa classe.
la différence est visible uniquement dans les opérations de dérivation. Une zone privée d’une classe devient toujours inaccessible (plus fort que privé) dans une classe dérivée, quelque soit la dérivation publique, protégée ou privée.
Une zone protégée reste accessible (protégée) dans une classe dérivée publiquement.
