对比 定义了 虚函数 的类 与 没有定义虚函数的类 的大小 , 其它成员都相同 , 定义了虚函数的类多出了 4 字节 , 多出的 4 字节就是 vptr 指针占用的内存空间 ;
一、验证指向 虚函数表...1 个虚函数 ;
如果 没有虚函数 , 就不会生成虚函数表 ;
如果 类 中有 virtual 虚函数 , 则 该类的 每个对象 中 , 都有一个 指向 虚函数表的 vptr 指针 ;
虚函数表 存储...中 , 重写了 父类的 virtual 虚函数 , 那么 C++ 编译器会在 子类 虚函数表 中放入该 子类虚函数的 函数指针 ;
如果 C++ 类中存在 virtual 虚函数 , 在创建对象时 ,...;
2、虚函数类与普通函数类对比 - 多出了 vptr 指针的大小
下面的代码中 , 定义了 2 个类 , 区别是 一个定义了 virtual 虚函数 , 另外一个没有定义 虚函数 ;
在 Parent...中定义了 虚函数 virtual void fun(int a) ;
在 Parent2 中定义的是 普通函数 void fun(int a) ;
使用 sizeof 函数 , 获取这两个类的大小 ,