速记:
- 虚函数/虚任务理解:被virtual修饰的类成员函数称为虚函数。虚函数是动态绑定的。在不改变基类的前提下,如果子类需要修改基类的行为(即重写与基类函数同名的函数),就应该在基类中将相应的函数声明为虚函数。虚函数是多态的一种重要实现方式。
- 父类的指针可以指向子类的对象
- 父类的指针在指向子类对象时,可以动态索引到子类重写的子类方法。
- 子类的指针不可以直接指向父类的对象
定义一个基类的句柄,如果是单态的话,句柄的类型就决定了对象的类型。比方说句柄的类型是类A,那么不管这个句柄指向什么类型的对象,它都是调用A里面的方法。
而多态是说一个类的指针,可以根据指向的对象的类型,显示出该对象对应的特性,也就是调用对象所对应的类型里面的方法。比方说句柄的类型是类A,该句柄指向的对象类型是类B,则会调用B里面的方法。
- 1、多态的实现方式:
虚函数(virtual)
:被virtual
修饰的类成员函数称为虚函数 - 2、基类中某一成员函数声明为
virtual
虚函数后,派生类中的同名函数(同名、同参、同类型)自动生成虚函数