Академический Документы
Профессиональный Документы
Культура Документы
Laila AMIR
Partie II : C++
Part II
Syntaxe générale
class A{
...;
};
Héritage publique
Syntaxe Les membres publiques de la classe mère
class A{ A restent publiques dans la classe fille B,
... Les membres protégés de la classe mère A
}; restent protégés dans la classe fille B,
class B : public A{
Les membres privés de la classe mère sont
...
inaccéssibles.
};
Statut dans Nouveau statut Accès par les méthodes 1 Accès par
la classe mère dans la classe fille de la classe fille le monde externe2
public public Oui Oui
protected protected Oui Non
private private Non Non
1
: les méthodes membres ou amies de la classe fille.
2
: les méthodes d’autres classes, non amies, objets de la classe fille, ...
Laila AMIR Programmations Orientées Objet
Généralités
L’héritage simple
L’héritage et le polymorphisme en C++ Héritage public, privé et protégé
Compatibilité entre objets de base et objets dérivés
L’héritage multiple
Héritage protégé
Syntaxe Les membres publiques de la classe mère
A deviennent protégés dans la classe
class A{
fille B,
...
}; Les membres protégés de la classe mère
class B : protected A{ A restent protégés dans la classe fille B,
... Les membres privés de la classe mère
}; sont inaccéssibles.
Statut dans Nouveau statut Accès par les méthodes Accès par
la classe mère dans la classe fille de la classe fille le monde externe
public protected Oui Non
protected protected Oui Non
private private Non Non
Héritage privé
Syntaxe Les membres publiques de la classe mère
class A{ A deviennent privés dans la classe fille B,
... Les membres protégés de la classe mère A
}; deviennent privés dans la classe fille B,
class B : private A{
Les membres privés de la classe mère sont
...
inaccéssibles.
};
Statut dans Nouveau statut Accès par les méthodes Accès par
la classe mère dans la classe fille de la classe fille le monde externe
public private Oui Non
protected private Oui Non
private private Non Non
Si on a :
A * pa; B * pb;
alors pa = pb ; est légal alors que pb = pa ; est illégal.
Par contre, elle peut être forcée par l’emploi de l’opérateur de cast en
écrivant :
pb = (B*) pa ;
Pour que l’on puisse appeler une méthode de l’objet descendant, il faut
que le typage du pointeur soit déterminé à l’exécution. On parle alors de
typage dynamique (qu’on verra plus loin).
L’héritage multiple
Syntaxe
Pour définir une classe qui dérive de plusieurs classes, il convient de séparer
chaque classe de base par une virgule, comme dans l’exemple suivant :
La classe C dérive à la fois des classes A et B. Cela signifie que chaque fois
que l’on crée un objet de type C, le C++ créera un objet de type A et un
objet de type B associé à cet objet. Dans ce cas, le constructeur de la
classe C doit appeler les deux constructeurs des classes de base A et B.