基本概念
纯虚函数和抽象类
- 纯虚函数是一个在基类中说明的虚函数,但是在基类中没有定义,要求任何派生类都定义自己的版本
- 纯虚函数为个派生类提供一个公共界面(接口的封装和设计、软件模块功能的划分)
- 纯虚函数定义形式:
virtual 类型 函数名(参数表)=0;
- 一个具有纯虚函数的基类称为抽象类
抽象类的点:
- 抽象类不能建立对象
- 可以声明抽象类的指针
- 抽象类不能作为函数的返回类型
- 抽象类不能作为函数的参数
- 可以声明抽象类的引用
绝大多数面向对象语言都不支持多继承
绝大多数面向对象语言都支持接口的概念
C++中没有接口的概念
C++中可以使用纯虚函数实现接口
接口类中只有函数原型定义,没有任何数据的定义
实际工程经验证明
多重继承接口不会带来二义性和复杂性等问题
多重继承可以通过精心设计用单继承和接口来代替
接口类只是一个功能说明,而不是功能实现。
子类需要根据功能说明定义功能实现