1、非虚函数的调用在编译时进行绑定,通过对象进行的函数(虚函数火非虚函数)调用也在编译时确定
2、每个有虚函数的类都维护着一张虚函数表,表中是该类中虚函数的地址。
3、子类父类各有各的虚函数表,互不干预。但子类会继承父类中的表。
4、子类中的虚函数表可能被覆盖,如果重载了虚函数。
5、对象中有一隐含指针指向它对应类的虚函数表
6、基类指针被赋值为派生类对象的地址,就可以找到指向该派生类虚函数表的隐含指针,然后通过该虚函数的名字就可以在这个虚函数表中找到对应的虚函数的地址。然后进行调用就可以了。
C++多态实现
最新推荐文章于 2019-12-13 09:18:32 发布