1 基本概念
1.1 纯虚函数
纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本。
虚函数为个派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分)
1.2 抽象类
一个具有纯虚函数的基类称为抽象类,抽象类不能实例化。
抽象类的子类必须要重写父类中的纯虚函数,否则也属于抽象类。
2 纯虚函数的语法
virtual 类型 函数名(形参) = 0;
3 示例
#include <iostream>
using namespace std;
// 父类
class Calculator
{
public:
// 纯虚函数
virtual int getResult() = 0;
int m_A;
int m_B;
};
// 子类
class AddCalculator : public Calculator
{
// 重写父类的纯虚函数
virtual int getResult()
{
return m_A + m_B;
}
};
int main()
{
// Calculator a; // 不能实例化抽象类
// 父类指针指向子类
Calculator *c = new AddCalculator;
c->m_A = 10;
c->m_B = 20;
// 调用子类的getResult()函数
cout << c->getResult() << endl;
return 0;
}