子类继承父类时,
父类的纯虚函数必须重写,否则子类也是一个虚类不可实例化。
父类中虚函数(非纯虚函数,即父类对其有定义),则子类也可以不重写,相当于原样继承了父类的虚函数。也可以重写,就相当于覆盖了父类的虚函数实现。不论是否重写虚函数都不影响子类的实例化~
以下这段是转载的,非常经典:
定义一个函数为虚函数,不代表函数为不被实现的函数。
定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。
定义一个函数为纯虚函数,才代表函数没有被实现。
定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。
原文地址:https://www.runoob.com/w3cnote/cpp-virtual-functions.html