虚函数表
2023-03-16 16:25:33 6 举报
AI智能生成
虚函数表知识点
作者其他创作
大纲/内容
1. 定义
一个 指针数组,其元素对应每一个虚函数的指针
2. 特点
虚函数的指针的赋值发生在编译器的 编译阶段
在代码的编译阶段,虚表就可以构造出来了
3. 虚表指针 *__vptr
虚表是属于 类 的,而不是属于某个具体的对象
一个类只需要一个虚表即可,同一个类的所有对象都使用同一个虚表
编译器在类中添加了一个指针 *__vptr,用来指向虚表
对象和它的虚表
4. 动态绑定
对象的虚表指针用来指向自己所属类的虚表
虚表中的指针会指向其继承的最近一个类的函数
动态绑定定义: 经过虚表调用虚函数的过程成为动态绑定,其表现出来的现象称为 运行时多态
5. 常见问题
1. 基类的析构函数为什么常被设为虚函数
当基类指针指向派生类的时候,如果基类析构函数不声明为虚函数,在析构时,
只会调用基类而不会调用派生类的析构函数,从而导致内存泄露
只会调用基类而不会调用派生类的析构函数,从而导致内存泄露
0 条评论
下一页