Dans ce cas pour :
C* pc=new C; B* pb; A* pa;on aura :
un appel pc->g(2)
sera traduit en :
*(pc->vptr[1])(pc,2)
Une affectation pb=pc;
ou pa=pc
copiera le vptr de
pc et donc, par exemple,
un appel de pb->h(5)
sera traduit en :
*(pb->vptr[1])(pb,5)
ce qui dans ce contexte reviendra à un appel de :
&C::h(pc,5)
Notons, que, dans le cas de l'héritage simple, le pointeur this pointe bien dans tous les cas sur la ``bonne'' zone.