BD
Size: a a a
BD
c
A *ptr;
if (rand() > 0.5) {
Foo *tmp = new Foo();
ptr = (A *)( (char *)tmp + A_offset_in_Foo );
} else {
Bar *tmp = new Bar();
ptr = (A *)( (char *)tmp + A_offset_in_Bar );
}
x(ptr);
VM
VK
ВМ
MS
VK
ВМ
SI
ВМ
VK
AT
foo.class), очевидно, в объектах лежит указатель на него, вот по ним и проверяется к какому классу относится объект. Ну и прочая рефлексия через них идёт.ВМ
ВМ
AS
foo.class), очевидно, в объектах лежит указатель на него, вот по ним и проверяется к какому классу относится объект. Ну и прочая рефлексия через них идёт.AS
AT
ВМ
AS
AS