纯虚函数
- 定义格式是:
virtual 函数类型 函数名(参量列表)=0;
例如:virtual float area( ) const =0;//纯虚函数
注意: ①纯虚函数没有函数体;②最后面的“=0”并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”; ③这是一个声明语句,最后应有分号。 - 作用:
纯虚函数的作用是在基类中为其派生类保留一个函数的名字,以便派生类根据需要对它进行定义。如果在基类中没有保留函数名字,则无法实现多态性。
抽象类
- 定义:
不能用作定义对象而只是表示一种基本类型用作继承的类,称为抽象类。由于其经常用作基类,因此也常称作抽象基类。
特征: - 凡是包含纯虚函数的类都是抽象类
- 如果在派生类中没有对所有纯虚函数进行定义,则此派生类仍然是抽象类,不能用来定义对象。
- 虽然抽象类不能定义对象(或者说抽象类不能实例化),但是可以定义指向抽象类数据的指针变量。当派生类成为具体类之后,就可以用这种指针指向派生类对象,然后通过该指针调用虚函数,实现多态性的操作。
- 在类的层次结构中,顶层或最上面的几层可以是抽象基类。抽象基类体现了本类族中各类的共性,把各类中共有的成员函数集中在抽象基类中声明。