使用vs查看虚函数内存分布

class D size(16):
        +---
 0      | +--- (base class Base)
 0      | | {vfptr}
 8      | | num
        | | <alignment member> (size=4)
        | +---
        +---

D::$vftable@:
        | &D_meta
        |  0
 0      | &D::fun

D::fun this adjustor: 0

虚函数其左侧的 0 表示的是虚函数的序号,并不是和上面的类的内存布局左侧的数字 8 一样表示的是相较于起始内存地址的偏移量,因为这里是有一个虚函数,如果有多个虚函数,其序号将依次为 0,1,2 … 等,

你可能感兴趣的:(vs)