《C++面向对象程序设计》六、多态性与虚函数6.5 抽象类
如果一个类至少有一个纯虚函数,那么就称该类为抽象类,对于抽象类的使用有以下几点规定:
由于抽象类中至少包含一个没有定义功能的纯虚函数。因此,抽象类只能作为其他类的基类来使用,不能建立抽象类对象。
不允许从具体类派生出抽象类。所谓具体类,就是不包含纯虚函数的普通类。
抽象类不能用作函数的参数类型、函数的返回类型或是显式转换的类型。
可以声明指向抽象类的指针或引用,此指针可以指向它的派生类,进而实现多态性。
如果派生类中没有定义纯虚函数的实现,而派生类中只是继承基类的纯虚函数,则这个派生类仍然是一个抽象类。如果派生类中给出了基类纯虚函数的实现,则该派生类就不再是抽象类了,它是一个可以建立对象的具体类了。