发布网友 发布时间:2022-04-22 04:31
共1个回答
热心网友 时间:2024-02-04 20:44
继承于虚基类的派生类中,虚基类的对象subobject不在固定位置(一般在内存的尾部),需要一个中介才能访问这个subobject,通常的做法是在子类对象中保留一个虚基表指针vbptr指向虚基表,通过虚基表来访问虚基类subobject。虚基表里面放什么信息要看不同的编译器厂商的实现方法,以Microsoft为例,虚基表存放的是subobject相对于vbptr的偏移量,vbptr相对于派生类对象的偏移量加上subobject相对于vbptr的偏移量就等于subobject在整个派生类的偏移量。