虚函数
对于某些函数,积累希望它的派生类自己去定义适合自身的版本,这个时候就将这些函数声明为虚函数。
定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。(动态绑定)(多态:根据调用函数的对象的类型来执行不同的函数)
任何构造函数之外的非静态函数都可以是虚函数。
纯虚函数
有些情况,我们并不希望在基类中定义一个函数(它本身可能没有意义,也不合理),而是希望它的每一个派生类自己去定义。定义为纯虚函数,表示这个函数没有被实现。
在虚函数后加上“=0”就可以定义纯虚函数。
virtual void fun()=0
含有(或者未经覆盖直接继承)纯虚函数的类是抽象基类,不能直接创建一个抽象基类对象。