虚函数是实现多态的基础,在定义基类虚函数时,会为该基类分配一个虚函数表,虚函数表记录了虚函数的地址。
子类继承基类时,如果重写了虚函数,则会覆盖这个地址,形成新的虚函数表,否则就继承基类的虚函数地址。
当实例化子类对象时,虚函数指针则指向该对象的虚函数表中该虚函数的地址,并执行相应的方法。
本文深入探讨虚函数作为多态实现基础的角色。通过解析虚函数表如何在基类和子类间工作,以及虚函数指针如何指向正确的虚函数地址来执行方法,帮助读者理解C++中多态的底层实现。
虚函数是实现多态的基础,在定义基类虚函数时,会为该基类分配一个虚函数表,虚函数表记录了虚函数的地址。
子类继承基类时,如果重写了虚函数,则会覆盖这个地址,形成新的虚函数表,否则就继承基类的虚函数地址。
当实例化子类对象时,虚函数指针则指向该对象的虚函数表中该虚函数的地址,并执行相应的方法。
2216

被折叠的 条评论
为什么被折叠?