Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

vtable przy wielokrotnym dziedziczeniu

Ostatnio zmodyfikowano 2018-02-27 00:16
Autor Wiadomość
robaczek122
Temat założony przez niniejszego użytkownika
vtable przy wielokrotnym dziedziczeniu
» 2018-02-26 21:49:30
P-169633
pekfos
» 2018-02-27 00:16:29
dlaczego tam nie ma odwołania bezpośrednio do metody: Child::FatherFoo(), tylko wywołujemy ją poprzez tę "thunk" funkcję?
C/C++
void Father_FatherFoo( void * _this );
void Child_FatherFoo( void * _this );
Takie mniej więcej procedury będą istnieć w pamięci i implementować te metody. Weź teraz jakąś metodę f w Father, która woła FatherFoo. Według twojego pomysłu po prostu bierzemy adres funkcji i wywołujemy ją z this. f operuje na Father, ale może wywołać Child_FatherFoo, jeśli f zostało wywołane na Child. Child_FatherFoo operuje na Child, a więc wymaga potencjalnie innego adresu, bo adres podobiektu klasy bazowej nie musi być identyczny z adresem obiektu klasy pochodnej.
P-169641
« 1 »
  Strona 1 z 1