虚表和虚指针概念

重点:

1.虚表和虚指针都是指类中存在虚函数的时候才有,如果类没有虚函数就没有虚指针和虚表

2.虚指针占4个字节

当类中存在虚函数时

1. 每个类都有虚指针和虚表;

2. 如果不是虚继承,那么子类将父类的虚指针继承下来,并指向自身的虚表(发生在对象构造时)。有多少个虚函数,虚表里面的项就会有多少。多重继承时,可能存在多个的基类虚表与虚指针;

3. 如果是虚继承,那么子类会有两份虚指针,一份指向自己的虚表,另一份指向虚基表,多重继承时虚基表与虚基表指针有且只有一份。

详解:这篇文章特别详细,耐心看下去收获非常大

C++类内存分布 - Jerry19880126 - 博客园 (cnblogs.com)

猜你喜欢

转载自blog.csdn.net/qq_38409301/article/details/121479439