多态:父类指针指向子类对象,通过父类指针调用子类函数,使父类指针有多种形态
原理:父类中虚函数在子类中重写,对象的前4或8字节是一个虚指针(vptr),
所有虚函数地址组成虚函数列表(vtable) 函数指针数组
虚指针指向虚函数列表,在子类中重写的虚函数地址会覆盖掉继承来的虚函数列表中对应函数的地址,当调用函数时根据当时的虚函数列表决定执行哪一个具体的函数
多态优点:提高复用性和拓展性
缺点:效率低,安全性
多态:父类指针指向子类对象,通过父类指针调用子类函数,使父类指针有多种形态
原理:父类中虚函数在子类中重写,对象的前4或8字节是一个虚指针(vptr),
所有虚函数地址组成虚函数列表(vtable) 函数指针数组
虚指针指向虚函数列表,在子类中重写的虚函数地址会覆盖掉继承来的虚函数列表中对应函数的地址,当调用函数时根据当时的虚函数列表决定执行哪一个具体的函数
多态优点:提高复用性和拓展性
缺点:效率低,安全性