(1)被virtual关键字修饰的成员函数,就是虚函数
(2)在基类中实现纯虚函数的方法是在函数原型后加“=0” virtual void funtion1()=0
(3)纯虚函数是在基类声明的虚函数,它在基类中没有定义,但是要求派生类都要定义自己的实现方法。
(4)抽象类中至少存在一个纯虚函数;存在纯虚函数的类一定是抽象类。存在纯虚函数是成为抽象类的充要条件。
(5)抽象类不能实例化(既不能定义对象)。之所以不能被实例化,是因为它里面是抽象方法,实例化对象调用其里面的方法没有意义,我们需要做的就是覆盖掉里面的抽象方法。 而这个抽象方法其实就是纯虚函数,通过派生类来override纯虚函数,定义N个方法
(6)虚函数有一个指向虚函数列表的指针,无论有多少个虚函数,占字节均为4
总结:
1.抽象类只能用作其他类的基类,不能定义抽象类的对象。
2.抽象类不能用于参数类型、函数返回值或显示转换的类型
3.抽象类可以定义抽象类的指针和引用,此指针可以指向它的派生类,进而实现多态性。