对比 定义了 虚函数 的类 与 没有定义虚函数的类 的大小 , 其它成员都相同 , 定义了虚函数的类多出了 4 字节 , 多出的 4 字节就是 vptr 指针占用的内存空间 ;
一、验证指向 虚函数表...虚函数指针 : " 虚函数表 " 是 存储 " 类成员函数指针 " 的 数据结构 , 是一个 函数指针数组 , 数组中的元素都是函数指针 , 具体存储的都是 指向 类中的虚函数 的指针 ;
如果 子类...中 , 重写了 父类的 virtual 虚函数 , 那么 C++ 编译器会在 子类 虚函数表 中放入该 子类虚函数的 函数指针 ;
如果 C++ 类中存在 virtual 虚函数 , 在创建对象时 ,...void fun(int a) ;
在 Parent2 中定义的是 普通函数 void fun(int a) ;
使用 sizeof 函数 , 获取这两个类的大小 , 判断两个类的区别 ;
最终得到..., 有 虚函数 的 类 , 比 没有 虚函数 的 类 , 多 4 字节 , 也就是一个指针的大小 ,
定义了 虚函数 的类 , 多出的 4 字节就是 vptr 指针的大小 ;
代码示例 :
#include