如果我有一个基类,并从中派生了10个不同的具体派生类,那么每个具体派生类都会有一个不同的vtable吗?
发布于 2009-08-02 12:03:27
如果基类或所有派生类都有虚函数,那么通常是这样的。这个问题为什么重要呢?
只有当两个类有一组固定的虚函数时,它们才能共享一个vtable。因此,如果派生类不覆盖任何虚函数,则它只能与基类共享vtable。
派生类不能与任何其他派生类共享vtable,除非它们都不覆盖相同基类的任何函数-即使以相同的方式实现-一个派生类的成员函数与不同派生类的成员函数是不同的类型。
发布于 2009-08-02 12:02:38
取决于派生类是否重写/声明任何虚方法。
https://stackoverflow.com/questions/1218764
复制相似问题