转载自虚函数详解
- 虚函数的作用:实现多态的机制,用夫类型的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数
- 虚函数是通过一张虚函数表来实现的,表中主要有一个类的虚函数地址表,这张表解决了继承、覆盖的问题
- 虚函数按照声明顺序放于虚函数表中,父类的虚函数在子类的虚函数前面
- 每个父类都有一个虚函数表,一个子类继承多个父类的时候,子类的虚函数(无覆盖)放到第一个父类的虚函数表中
安全性
- 通过夫类型的指针访问子类自己的虚函数
- 访问non-public的虚函数:父类的虚函数是private或者protected的时候,这些虚函数同样会存在于虚函数表中,能用访问虚函数表的方式来访问这些虚函数