您的位置:首页 > 编程语言 > C语言/C++

C++虚函数表

2016-04-22 11:08 225 查看
C++ 多态性可分为两类:静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态,动态多态性是通过虚函数实现的。**

每个含有虚函数的类有一张虚函数表(vtbl),表中每一项是一个虚函数的地址, 也就是说,虚函数表的每一项是一个虚函数的指针。

基类和继承类分别拥有自己的虚函数表

如果有虚函数,则虚函数表占用类内存的首地址

多重继承的情况下,对应基类有多个虚函数表

没有虚函数的C++类,是不会有虚函数表的。

C++类的成员函数不占用内存,所有虚函数占用一个指针内存,用于指向虚函数表

如下两张图说明C++类的成员变量内存、虚函数内存、成员函数内存的分布情况。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: