场景
- 在学习
C/C++
的时候, 总不免碰到文章内提起虚函数表(virtual table)或者说vtbl
, 还有指向这个vtbl
的指针vptr
; 问题来了, 到时什么是vtbl
呢? 它的作用是什么?
说明
-
vtbl
是C++
对象模型里的概念, 也是目前C++
内存对象里的关键概念, 它主要是用来实现虚函数的寻找问题. 我们都知道虚函数存在的意义主要还是为了继承和多态.vtbl
就是用来查找这些虚函数和RTTI
信息的. -
C++对象里主要有这类型数据: 非静态数据成员, 静态数据成员, 静态和非静态函数成员 这4种.
-
C++对象模型, 以下的截图引用了<< C++对象模型>>里的图
模型1: 单个全属性的C++对象, 注意第一个对象表里只有非静态成员和vtbl
. P10
<