Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我有一个基类并从中派生 10 个不同的具体派生类,那么每个具体派生类都会有不同的 vtable 吗?
如果基类或所有派生类都有任何虚函数,那么通常是的。它为什么如此重要?
如果两个类具有一组相同的虚函数,则它们只能共享一个 vtable。因此,如果派生类不覆盖任何虚函数,则只能与基类共享 vtable。
一个派生类不能与任何其他派生类共享一个 vtable,除非它们都没有覆盖同一基类的任何函数——即使以相同的方式实现——一个派生类的成员函数是不同的类型不同派生类的成员函数。
取决于您的派生类是否覆盖/声明任何虚拟方法。