动态绑定是怎么实现的?
(就是基类指针或者基类引用和派生类指针或者派生类引用的转换问题)
多态的条件:
- 基类中定义了虚函数
- 派生类中对继承自基类的虚函数进行了重写
- 存在继承关系的情况下,使用父类的指针或者引用调用虚函数时,这个调用可能在运行时,绑定到不同的子类中,产生不同的行为。
动态绑定虚函数的工作原理:
每个类会为所有虚函数维护一个虚函数表,并且有一个指针指向这个表的首地址,这个虚函数表记录着所有的虚函数的入口地址。
衍生:继承和多态的作用
继承对程序编写的作用在于可以更容易定义和其他类相似,但不相同的新类。
多态的作用在于可以通过动态绑定,在使用这些类进行编写程序时,可以一定程度上忽略其区别。