1. C++对象模型中,虚函数表(vtable)的布局是怎样的?多继承时vtable如何组织?答:每个含有虚函数的类都有一张vtable,存放在只读数据段,表中按声明顺序存放虚函数指针。每个该类的对象头部有一个隐藏的vptr指向这张表。多继承时情况更复杂:对象内存中会有多个vptr,每个基类子对象对应一个。比如类C继承自A和B,C的对象布局是先放A的子对象(含A的vptr),再放B的子对象(含B的vptr)。C重写的虚函数会覆盖A那张表里对应的槽位,同时B那张表里也会有一个thunk(调整器),负责在调用时修正this指针偏移,再跳转到C的实现。这就是为什么多继承下虚函数调用有额外的this指...