虚函数表

以上述类型为例:

        

         void a_fun_1();为基类虚函数,在派生类b中没有重新进行定义;

         void a_fun_2();为基类虚函数,在派生类b中被重新进行定义;

    void b_fun_1();为派生类中新增加的虚函数;

那么基类a和派生类b的虚函数表是这样的:

 

规则是:

在派生类中,如果没有重新定义基类中的虚函数,将直接从原来虚函数表中继承将信息过来;

在派生类中,如果重新定了基类中的虚函数,那么将用新的虚函数地址覆盖原来的虚函数在虚函数表中的信息;

在派生类中,如果重新增加类虚函数,那么将在虚函数表中插入新的虚函数地址信息;

原文地址:https://www.cnblogs.com/achao123456/p/9609107.html