虚函数表为什么没有被销毁?
如果两个对象中的一个指针成员都指向堆上同一份数据时,两个对象销毁就会出现问题。因为堆上的数据要销毁两次。
那么虚函数表呢?是不是每个类只有一个虚函数表?然后每个对象中一个指针(vptr)指向那个表,那么同一个类的多个对象销毁时为什么不会出现问题呢?虚函数表不是要销毁多次了吗?
[解决办法]
销毁不是由用户完成的是由系统统筹销毁的~
[解决办法]
去看《深度探索C++对象模型》,会对你有帮助。
[解决办法]
错了,还是Kenmark牛
如class A
{
public:
virtual void fa(){}
};
class B
{
public:
virtual void fb(){}
};
class C:public A,B
{
public:
virtual void fa(){}
virtual void fb(){}
};
int main()
{
C a,c;
return 0;
}
类C就有不只一张虚函数表