Struktury i C++
Tablice funkcji wirtualnych
class A {
public:
  int a;
  virtual void v();
};
 
class B {
public:
  int b;
  virtual void w();
};
 
class C : public A, public B {
public:
  int c;
};
                            +-----------------------+
                           |     0 (top_offset)    |
                           +-----------------------+
c --> +----------+         | ptr to typeinfo for C |
      |  vtable  |-------> +-----------------------+
      +----------+         |         A::v()        |
      |     a    |         +-----------------------+
      +----------+         |    -8 (top_offset)    |
      |  vtable  |---+     +-----------------------+
      +----------+   |     | ptr to typeinfo for C |
      |     b    |   +---> +-----------------------+
      +----------+         |         B::w()        |
      |     c    |         +-----------------------+
      +----------+

Tomasz Kapela, Kraków 2011-2020