对比 定义了 虚函数 的类 与 没有定义虚函数的类 的大小 , 其它成员都相同 , 定义了虚函数的类多出了 4 字节 , 多出的 4 字节就是 vptr 指针占用的内存空间 ;
一、验证指向 虚函数表...的 vptr 指针 是否存在
1、虚函数表与 vptr 指针由来
" 虚函数表 " 由 C++ 编译器 负责 创建 与 维护 , 被 virtual 关键字 修饰的 虚函数 , 会自动 被 C++ 编译器...中 , 重写了 父类的 virtual 虚函数 , 那么 C++ 编译器会在 子类 虚函数表 中放入该 子类虚函数的 函数指针 ;
如果 C++ 类中存在 virtual 虚函数 , 在创建对象时 ,...;
2、虚函数类与普通函数类对比 - 多出了 vptr 指针的大小
下面的代码中 , 定义了 2 个类 , 区别是 一个定义了 virtual 虚函数 , 另外一个没有定义 虚函数 ;
在 Parent...判断两个类的区别 ;
最终得到 , 有 虚函数 的 类 , 比 没有 虚函数 的 类 , 多 4 字节 , 也就是一个指针的大小 ,
定义了 虚函数 的类 , 多出的 4 字节就是 vptr 指针的大小