多态就是不同继承类的对象,对同一行为所做出的不同反应,基类的指针指向或绑定到派生类的对象,使得基类的指针产生不同的表现方式
多态分为静态多态和动态多态
静态多态通过重载和模板编程实现,是在编译时就确定
动态多态则是通过虚函数实现,含有虚函数的类产生的对象会有一个虚指针,它指向该对象的虚函数表
当基类的指针指向派生类对象时,它就会遍历调用该对象虚函数表中的对应函数,从而实现多态,所以它的调用是运行时决定的
基类指针能够指向派生类对象,而派生类指针不能指向基类对象,这是因为派生类指针指向基类对象可能会访问到不属于基类对象的内存从而引起错误
纯虚函数
virtual void fun() = 0;
含有纯虚函数的类称为虚基类,不能实例化对象,纯虚函数必须要实现后才不是虚基类。
标签:函数,对象,基类,多态,派生类,指针 From: https://www.cnblogs.com/cintang/p/17380234.html