虚函数和纯虚函数

虚函数:在子类继承父类的时候,如果子类和父类有相同的函数(即函数的覆盖),当子类实例化对象的时候,子对象调用此函数,会默认调用父类的此函数。

这时,在父类的此函数前面加上:virtual,就可以调用子类此函数。

纯虚函数:在父类的某个函数-》virtual void fn()=0;

这个类就变成了抽象类不能实例化对象,只有它的子类实现了这个虚函数才可以实例化对象。

例子:

QThread类中有虚函数run,如果直接使用QThread子类的start时,会执行这个run【里面是空的】;

当使用子类继承QThread时,如果想要run自己的函数,就重载run,在里面写需要的代码,这样就实现了多态

原文地址:https://www.cnblogs.com/judes/p/5871781.html