1、实现多态性,多态性是将接口与实现进行分离。
2、当调用一个虚函数时,被执行的代码必须和调用函数的对象的动态类型相一致。
3、允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
4、当基类指针指向一个子类对象,通过这个指针调用子类和基类同名成员函数的时候,基类声明为虚函数就会调子类的这个函数,不声明就会调用基类的。
5、在使用指向子类对象的基类指针,并调用子类中的覆盖函数时,如果该函数不是虚函数,那么訇咀喃谆将调用基类中的该函数;如果该函数是虚函数,则会调用子类中的该函数。
6、定义子类对象,并调用对象中未被子类覆盖的基类函数A。同张虢咆噘时在该函数A中,又调用了已被子类覆盖的基类函数B。那此时将会调用基类中的函数B,可我们本应该调用的是子类中的覆盖函数B。虚函数即能解决这个问题。