虚函数表存在内存什么地方?怎么分配和释放空间的?
发布网友
发布时间:2022-04-22 04:31
我来回答
共1个回答
热心网友
时间:2023-07-01 11:46
首先,存在虚函数的类都有一个一维的虚函数表叫虚表,虚表里存放的就是虚函数的地址了,因此,虚表是属于类的。这样的类对象的前四个字节是一个指向虚表的指针。这就很好解释你所提问的问题了:
1、stud对象中除了int型的a,b外,还有一个占四字节的虚表指针,共占了12字节
2、pt是父类对象指针,当然也占12字节
3、由于student2继承自student,因此,student2也有虚函数,因此,类对象的前四个字节也是虚表指针,因此,对象stud1占了16字节而不是12字节
4、没有了虚函数,也就没有了虚表和虚表指针,当然也就不存在以上问题了