1.虚指针或虚函数指针是一个虚函数的实现细节。带有虚函数的类中的每一个对象都有一个虚指针指向该类的虚函数表。
2.虚函数的入口地址和普通函数有什么不同?
每个虚函数都在vtable中占有一个表项,保存着一条跳转到它的入口地址的指令(实际上就是保存了它的入口地址)。当一个包含虚函数的对象(注意:不是对象的指针)被创建的时候,它在头部附加一个指针,指向vtable中相应的位置。调用虚函数的时候,不管用什么指针调用,它先根据vtable找到入口地址再执行,从而实现动态联编。而不像普通函数那样简单地跳转到一个固定地址。
阅读(1094) | 评论(0) | 转发(0) |