什么是多态:
指不同对象收到相同消息时或相同对象收到不同消息时产生不同的动作。
这里先说下为什么会用到虚函数:
以下面的程序为例:
这个程序中,Carp是Fish的继承类,而Carp中覆盖了Swim这个方法,在MakeFishSwim这个函数中,要使用Fish类的形参,而你将yourFish这个Carp类的实参传递给了这个函数,让他执行Swim这个函数,这会发生什么,上面的程序运行结果:
这说明了什么?说明在MakeFishSwim这个程序中,它定义它的形参是Fish类型的,虽然你将yourFish这个Carp类传到了它那里,它仍然认为yourFish是Fish类的,并调用了Fish类Swim。
显然我们的初衷并不是这样,是希望对应的类执行自己的方法,那怎么避免这种情况呢?这就需要虚函数了。
虚函数的定义很简单,直接在父类方法定义最前面加上关键字“virtual”即可!在父类这个函数前一定得加virtual,子类的话,可以不加,系统编译时候会帮忙加&#