1

如果我有一个基类并从中派生 10 个不同的具体派生类,那么每个具体派生类都会有不同的 vtable 吗?

4

2 回答 2

4

如果基类或所有派生类都有任何虚函数,那么通常是的。它为什么如此重要?

如果两个类具有一组相同的虚函数,则它们只能共享一个 vtable。因此,如果派生类不覆盖任何虚函数,则只能与基类共享 vtable。

一个派生类不能与任何其他派生类共享一个 vtable,除非它们都没有覆盖同一基类的任何函数——即使以相同的方式实现——一个派生类的成员函数是不同的类型不同派生类的成员函数。

于 2009-08-02T12:03:26.950 回答
0

取决于您的派生类是否覆盖/声明任何虚拟方法。

于 2009-08-02T12:02:37.560 回答