c++虚函数表中non-virtual thunk to表示什么,他的实现中sub 一个偏移指什么?

对象模型 虚函数
关注者
5
被浏览
9,944

2 个回答

在C++中,如果我们有一个Book 对象b,调用它的方法b->get_name(),那么这个对象也就是this指针,会作为这个get_name函数的第一个参数,即

b->get_name()

生成的代码是,

get_name(b)

而这个non--virtual thunk的作用是调整传入的this指针,做一些偏移啦。

了解到这是一个编译阶段规定好的偏移量,为了完成this 的转化,将父类指针指向子类对象地址