虚函数的入口地址和普通函数有什么不同

每个虚函数都在vtable中占了一个表项,保存真一条跳到它的入口地址的指令(实际上就是保存了它的入口地址)。

当一个包含虚函数的对象(注意,不是对象的指针)被创建的时候,它在头部附加了一个指针,指向vtable中相应的位置。

调用虚函数的时候,不管你是用什么指针调用,它先根据vtable找到入口地址再执行,从而实现了“动态联编”。


普通函数只是简单的跳到一个固定的地址。

你可能感兴趣的:(C++)