一、纯虚函数

(1)语法

virtual 返回类型 函数名(形参列表) = 0;

(2)虚函数表

1
2
3
4
5
6
7
8
9
10
class Base
{
private:
int val;
public:
Base(int x = 0): val(x){}
~Base(){}
virtual void fun() = 0;
virtual void show()const {cout << val << endl;}
};

在这里插入图片描述


二、抽象类

概念:只要含有一个纯虚函数,该类就叫做抽象类

抽象类不能实例化对象,由抽象类继承而来的派生类,必须重写基类中的纯虚函数,否则该派生类也无法实例化对象(也是抽象类)


三、接口类

1
2
3
4
5
6
7
struct Interface
{
//接口一
virtual void fun1() = 0;
//接口二
virtual void fun2() = 0;
};