C++ 纯虚函数和抽象类(自学笔记,可能有错)
什么是纯虚函数 (1) 纯虚函数是一个 在基类中说明 的虚函数,在 基类中没有定义 ,要求任何派生类都定义自己的版本。 (2) 纯虚函数为各派生类提供一个 公共界面 (接口的封装和设计、软件的模块功能划分) (3) 纯虚函数说明形式: virtual 类型 函数名(参数表) = 0; (4)一个具有纯虚函数的基类被称为 抽象类 引入纯虚函数的原因 (1) 为了方便使用多态特性,我们常常需要在基类中定义虚函数。 (2) 在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。 为了解决上述问题,引入了纯虚函数的概念,即 将函数定义为纯虚函数。 抽象类 (1) 抽象类 不能实例化 但可以 创建 一个抽象类的 指针或是引用, 抽象类不能作为返回类型、参数类型。 (2) 除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。 在派生类实现该纯虚函数后,定义抽象类对象的指针,并指向或引用子类对象。 (3) 抽象类 的 唯一用途 是为派生类 提供基类 ,纯虚函数的作用是作为派生类中的成员函数的基础,并实现动态多态性。 #include <iostream> using namespace std; class father// 拥有纯虚函数,因此这个类成为了抽象类 { public: