1、在一个类中定义一个纯虚函数,则这个类是抽象类。纯虚函数在基类中是不实现的,只是提供一个接口。在子类中分别去实现。在很多情况下,类本身是不生成对象的。动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。
纯虚函数就是基类只定义了函数体,没有实现过程,定义方法如: virtual void Eat() = 0; 不要
在cpp中定义;纯虚函数相当于接口,不能直接实例化,需要派生类来实现函数定义;
子类中必须覆盖基类的纯虚函数;
含有纯虚函数的类不能被实例化;
含有纯虚函数的类一定是抽象类;
基类的纯虚函数没有函数体。
而:类里声明为虚函数的话,这个函数是实现的,哪怕是空实现,它的作用就是为了能让这个函数在它的子类里面可以被重载,这样的话,这样编译器就可以使用后期绑定来达到多态了。
3、虚函数是为了继承接口和默认行为,可以继承父类的实现,当然自己也可以去实现。
纯虚函数只是继承接口,行为必须重新定义。