含有(或者未经覆盖直接继承)纯虚函数的类叫抽象基类(abstract base class)。抽象基类负责定义接口,而后续的其他类可以覆盖该接口。如果派生类中没有重新定义纯虚函数,而只是继承基类的纯虚函数,则这个派生类仍然还是一个抽象基类。因为抽象基类含有纯虚函数(没有定义),所以我们不能创建一个抽象基类的对象,但可以声明指向抽象基类的指针或引用。
/*************************************************************************
> File Name: abst.cpp
> Author: XXDK
> Email: v.manstein@qq.com
> Created Time: Sun 26 Feb 2017 10:43:27 PM PST
************************************************************************/
#include<iostream>
using namespace std;
class base {
public:
virtual void xxdk(void) = 0;
};
class derived : public base {
public:
void xxdk(void) override {
cout << "xxdk" << endl;
}
};
int main()
{
derived dct;
base* bp;
base& br = dct;
bp = &dct;
bp->xxdk();
br.xxdk();
}