虚表浅析

来源:互联网 发布:linux 占用内存 脚本 编辑:程序博客网 时间:2024/06/03 10:38

  C++一个类中有虚函数的话就会有一个虚表指针,其指向对应的虚表,一般一个类只会有一个虚表,每个虚表有多个”插槽”,每个插槽存放一个虚函数的地址。插槽中的内容可以被覆盖,子类如果重写了父类中的虚函数,则插槽中对应位置的数据被覆盖。虚表存放的是虚函数地址,不管该虚函数是public还是private的。光文字说明不太形象,下面上一张虚表结构的示例图:

根据示例图可以明确的知道,虚表是一个函数指针数组,通过虚指针作为访问虚表的入口地址。

 

0 0
原创粉丝点击