首页 > 试题广场 >

请你说说虚函数表具体是怎样实现运行时多态的?

[问答题]

请你说说虚函数表具体是怎样实现运行时多态的?

子类创建对象后,在对象模型的头部会存放一个指向虚函数表的指针,
虚函数表中函数的地址->父类的虚函数被子类重写之后,虚函数表中的函数地址将被替换,替换成子类的虚函数地址。
发表于 2020-09-17 21:53:38 回复(0)

  • 原理:
    • 虚函数表是一个类的虚函数的地址表,每个对象在创建时,都会有一个指针指向该类虚函数表,每一个类的虚函数表,按照函数声明的顺序,会将函数地址存在虚函数表中,当子类对象重写父类的虚函数的时候,父类的虚函数表中对应的位置会被子类的虚函数地址覆盖。

  • 作用:在用父类的指针调用子类对象成员函数时,虚函数表会指明要调用的具体函数是哪个。
发表于 2020-03-23 09:36:33 回复(0)