C++的虚标指针是什么?多重继承虚标指针有几张?
时间: 2023-11-02 18:29:18 浏览: 232
C++中的虚拟函数机制是通过虚函数表(vtable)来实现的,虚表指针就是指向虚表的指针,也称为虚标指针(vptr)。在一个含有虚函数的类的对象中,会有一个虚标指针指向该类的虚表。虚表中存储了该类的虚函数地址,当调用该类的虚函数时,实际上是通过虚表指针找到该类的虚表,再根据虚函数的偏移量找到对应的函数地址进行调用。
在多重继承中,如果一个类继承自多个父类,那么它就会有多个虚表指针。每个父类都有自己的虚表,所以一个继承自多个父类的类就会有多个虚表指针,其中第一个虚表指针指向该类自己的虚表,后面的虚表指针则分别指向每个父类的虚表。因此,一个继承自多个父类的类就会有多张虚表。
阅读全文