Next: Pointeurs et polymorphisme
Up: Autres types d'héritage
Previous: Héritage et fonctions
class x {
public:
void affiche(void) const ;
} ;
inline void x::affiche(void) const
{ cout << "classe x " << endl ; }
class y : public x {
public:
void affiche(void) const ;
} ;
inline void y::affiche(void) const
{ cout << "classe y " << endl ; }
int main(void) {
x xvar ;
y yvar ;
xvar.affiche() ;
yvar.affiche() ;
return 0 ;
}
Une classe peut parfaitement redéfinir un membre de la sur-classe. Dans ce cas,
il existe en réalité deux versions de membres, l'ordre de recherche est donc
impoertant et est toujours le suivant dans une hiérarchie d'héritage :
- recherche parmi les membres de la classe de la variable.
- recherche parmi les sur-classes de la classe de la variable.
Pour accéder à un membre redéfini, il suffit de préciser le type de la classe
suivi de '::' avant de nommer le membre comme dans l'exemple :
yvar.x::affiche() ; // affiche classe x