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 :
yvar.x::affiche() ; // affiche classe x